SlideShare a Scribd company logo
1 of 14
Download to read offline
CÔNG TY VNG




ZING ME OPENSOCIAL API
       VERSION 1.3.3
       Nhóm Zing Me Open Social




               TP. HCM
               10/2010

                  1
M CL C




1     Gi i thi u ............................................................................................................................ 3
2     Mô hình ho t ñ ng c a                 ng d ng trên Zing Me theo chu n Open Social ........................... 3
3     Các th XML mà Zing OS c n h tr .................................................................................. 4
    3.1     <Module> ..................................................................................................................... 4
    3.2     <ModulePrefs> ............................................................................................................. 4
    3.3     <Content> .................................................................................................................... 4
    3.4     <Require> .................................................................................................................... 5
4     JS API................................................................................................................................. 5
    4.1     Danh m c hàm ............................................................................................................. 5
      4.1.1 Gadgets ................................................................................................................... 5
5     REST API ........................................................................................................................... 7
    5.1     Quy ñ nh chung ............................................................................................................ 7
      5.1.1 Quy ñ nh v vi c tr d li u v ................................................................................. 7
      5.1.2 Vi c c p quy n cho Application & ki m tra quy n .................................................... 8
    5.2     Danh m c các API h tr ............................................................................................. 8
      5.2.1 GET /social/rest/people/{guid}/@self........................................................................ 8
      5.2.2 GET /social/rest/people/@me/@self .......................................................................10
      5.2.3 GET /social/rest/people/{guid}/@friends .................................................................10
      5.2.4 POST /social/rest/activities/@me/@self/@app .......................................................11
      5.2.5 POST /social/rest/mediaitems/@me/@self .............................................................11
6     B ng chú gi i .....................................................................................................................13
7     Tham kh o: ........................................................................................................................13




                                                                      2
1 Gi i thi u
B API này g m các hàm c a Zing Open API phiên b n 1.0, ñã ñư c ñi u ch nh ñ tương thích
v i RESTful Protocol Specification v0.9, và b sung b JS API ñ ph c v cho Gadget theo mô
hình ho t ñ ng c a Open Social.


2    Mô hình ho t đ ng c a         ng d ng trên Zing Me theo chu n Open Social

                                                       Gadget
                                                  (OS App Front-End)




                                           1. JS API
                                                             5. JS API
                                           gadget.io
                                                              callback
                                         makeRequest()




                      2. OAuth
                     phone home
                       request

                     3. REST API
 Home Server          GET/POST
   (OS App              OAuth                      Zing Me Container
  Back-End)            Reserve
                     phone home


                      4. respond




     OS App
    Database




                             Hình 1: Mô hình ho t ñ ng c a OS App




                                              3
Chú gi i:

    •   Open Social App có th g m Gadget + Home Server ho c ch là Gadget. OS quy ñ nh
        quy n c a Gadget và Home Server ñ i v i Open Social data là gi ng nhau.

    •   Gadget giao ti p v i Home Server thông qua trung gian là Zing Me Container, s d ng
        JS API (namespace gadget.io). B ng cách này, thông qua cơ ch 2 Legged OAuth
        HomeServer ch c ch n các request nh n ñư c là ñ n t Gadget c a Home Server ñó,
        và Zing Me Container bi t ñư c request là ñ n t User nào (Owner).

    •   Home Server cũng có th giao ti p Server – Server v i Zing Me Container thông qua
        REST API.


3     Các th XML mà Zing OS c n h tr
3.1 <Module>
Là th g c

3.2 <ModulePrefs>
Ch a các thông tin mô t Gadget

Thu c tính             Mô t
title                  Tên c a Gadget, s ñư c hi n tr trên màn hình.
description            Mô t v Gadget.
author                 Tên tác gi


3.3 <Content>
Ch a mã ngu n c a Gadget

Thu c tính             Mô t
type                   ”html”
view                   V trí mà Gadget ñư c hi n th
preferred_height       Chi u cao m c ñ nh c a Gadget (pixel)
preferred_width        Chi u r ng m c ñ nh c a Gadget (pixel)



Mã ngu n c a Gadget ñư c ñ t trong th CDATA:

<![CDATA[          source_code       ]]>

VD:




                                              4
<Content view="home">
  <![CDATA[
    Hello, home view!
  ]]>
 </Content>


3.4 <Require>
Khai báo Gadget s s d ng các thư vi n JS nào

Thu c tính          Mô t
feature             Tên thư vi n


Các thư vi n h tr

Tên thư vi n        Mô t
flash               H tr nhúng Flash vào Gadget
tabs                H tr t o Tab cho giao di n c a Gadget




4 JS API

4.1 Danh m c hàm
4.1.1 Gadgets
Mô t : ñ i tư ng h tr cho Gadget

4.1.1.1 io
Mô t : ñ i tư ng h tr truy v n và nh n d li u t Home Server

4.1.1.1.1 makeRequest
    1. Mô t : Kh i t o Request ñ n HomeServer

   2. Vào

     Tên tham s                    Ki u d li u                Mô t
     url                           String                     url c a HomeServer
     callback                      Function                   Hàm s nh n d li u tr v


   3. Ra

       Không



                                            5
4. Ví d :


function makeRequest() {
  var params = {};
  var url = "http://graargh.returnstrue.com/buh/fetchme.php";
  gadgets.io.makeRequest(url, response);
};

function response(obj) {
  //obj.text contains the text of the response
  output(obj.text);
};

makeRequest();


4.1.1.2 Flash
Mô t : ð i tư ng h tr vi c nhúng Flash vào Gadget

4.1.1.2.1 embedFlash
    1. Mô t : Nhúng file Flash vào Gadget

   2. Vào

      Tên tham s                       Ki u d li u              Mô t
      swfUrl                           String                   url c a file Flash
      swfContainer                     String                   ID c a DOM s ch a Flash
      swfVersion                       Number                   Phiên b n FlashPlayer t i
                                                                thi u c n có
      opt_params                       Object                   Các ñ i tư ng ch a tham s
                                                                c a HTML


   3. Ra

       Không

   4. Ví d :

gadgets.flash.embedFlash(url, "flashcontainer", {

    swf_version: 6,
    id: "flashid",
    width: 300,
    height: 250
  })




                                                 6
5 REST API

5.1 Quy đ nh chung
5.1.1 Quy đ nh v vi c tr d li u v
    1. Các ñ i tư ng d li u tr v (Person, Activity, MediaItem,…) ñư c bi u di n dư i ñ nh
       d ng JSON, theo như quy ñ nh trong ph n “Data Representations” c a RESTful
       Protocol Specification v0.9.

      2. ð i tư ng g c (root element) ph i ch a các giá tr sau (theo ñ c t c a OpenSearch):

         Tên                         Mô t
         startIndex                  V trí c a item ñ u tiên c a k t qu tr v c a l n g i hàm
                                     này trong result set.
                                     VD: truy v n có result set g m 10 k t qu , startIndex=5 t c
                                     là item ñ u tiên trong l n g i hàm này là v trí th 5 trong
                                     10 k t qu ñó.

         itemsPerPage                S item th c s ñư c tr v trong l n g i hàm này.
         totalResults                T ng c ng các k t qu c a truy v n n u b qua vi c phân
                                     trang k t qu (t c là t ng s k t qu trong result set.
         entry                       Ch a k t qu tr v
                                     Có d ng m ng các item ho c 1 item tùy theo quy ñ nh lúc
                                     g i hàm.
                                     M i item là m t ñ i tư ng d li u.

VD:
{
  "startIndex" : 1,
  "itemsPerPage" : 10,
  "totalResults" : 100,
  "entry" : [
     {...first item...},
     {...second item...}
     ...
  ]
}

Trư ng h p ch tr v 1 item:

{
    "startIndex" : 1,
    "itemsPerPage" : 10,
    "totalResults" : 100,
    "entry" : {...only item...}
}

Ngoài ra có th ch a thêm các giá tr khác tùy ch n.


                                               7
3. N u xu t hi n l i, thì tr v mã l i tương ng như sau:

       #    Tên l i                          Mã l i
       1    G i hàm sai cú pháp              400 Bad Request
       2    Quá trình ch ng th c OAuth       401 Unauthorized
            có l i, ho c App không ñư c
            c p quy n
       3    App không ñư c c p quy n         403 Forbidden
            ñ th c hi n hành vi này
       4    Không tìm th y ñ i tư ng         404 Not Found
            ñư c yêu c u
       5    Hàm chưa ñư c Zing h tr          501 Not Implemented
       6    L i không xác ñ nh               500 Internal Server Error

5.1.2 Vi c c p quy n cho Application & ki m tra quy n
Hi n t i ZingMe chưa h tr User c p quy n cho t ng Application mà User ñã cài vào.

Do ñó quy n c a Application s căn c vào quy n m c ñ nh c a h th ng c p cho Application
ñó & các Permission do User c u hình trong trang “cài ñ t quy n riêng tư”.

Vi c ki m tra quy n (Authorization) ñư c tuân theo giao th c Two-legged OAuth.

5.2 Danh m c các API h tr
ði u ki n b o m t chung: User g i request ph i là OWNER, và OWNER ph i ñang ñăng nh p
vào Zing Me.

5.2.1 GET /social/rest/people/{guid}/@self
    1. Mô t : l y thông tin c a User d a trên ID.

   2. ði u ki n b o m t: {guid} ph i là ID c a OWNER ho c b n c a OWNER.

   3. Input:

     Tên tham s                       Mô t
     {guid}                           Id c a User


   4. Output: ð i tư ng People

VD: cách l y thông tin c a m t user

// t o ñ i tư ng osapi

$consumerKey = "c969713e3048fa919202961e1b9eb9c7";

$consumerSecret = "bc192fd03531094a78b60a91df93d5c7";

$userId = $_GET[“ownerId”]; // tham s này t có khi makeRequest           Gadget


                                               8
$storage = new osapiFileStorage('/tmp/osapi');

$provider = new osapiZingMeProvider();

$auth = new ZM_osapOAuth($consumerKey, $consumerSecret, $userId);

$osapi = new osapi($provider, $auth);



// ti n hành l y thông tin user

$extrafields = array( 'thumbnailUrl');

$self_request_params = array(

           'userId' => "tunguyen.it", // ID c a user (tương ng v i user name c a Zing Me).

           'groupId' => '@self', // l y thông tin c a user

           'fields' => $extrafields // các trư ng b sung thêm

);

$batch->add($osapi->people->get($self_request_params), 'self');

$result = $batch->execute(); //ch y request và nh n v k t qu

- K t qu :

     object(osapiPerson)[12]

      public 'displayName' => string 'Nguy n Thanh Tú' (length=18)

      public 'gender' => string 'male' (length=4)

      public 'id' => string 'tunguyen.it' (length=11)

      public 'name' =>

       array

        'familyName' => string 'Nguy n Thanh' (length=14)

        'givenName' => string 'Tú' (length=3)

        'formatted' => string 'Nguy n Thanh Tú' (length=18)

      public 'isOwner' => boolean true

      public 'isViewer' => boolean true


                                                        9
5.2.2 GET /social/rest/people/@me/@self
    1. Mô t : L y thông tin profile c a OWNER

   2. Vào: không có

   3. Ra

       ð i tư ng Person c a OWNER

VD: tương t như ví d trư c, thay userId b ng @me

5.2.3 GET /social/rest/people/{guid}/@friends
    1. Mô t : L y danh sách các b n c a user

   2. ði u ki n b o m t: {guid} ph i là ID c a OWNER.

   3. Vào:

     Tên tham s                       Mô t
     {guid}                           Id c a User
   4. Ra:

       Các ñ i tư ng Person

VD: l y danh sách b n bè c a 1 user

$extrafields = array( 'thumbnailUrl');
$friends_request_params = array(
           'userId' => "@me", // used id.
           'groupId' => '@friends', // @friends dùng ñ l y danh sách b n bè.
           'fields' => $extrafields, // các trư ng b sung thêm.
           'count' => 10, // s lư ng c n l y
           'startIndex' => 0 // v trí b t ñ u
);
$batch->add($osapi->people->get($friends_request_params), 'friends');
$result = $batch->execute();

- K t qu :
object(osapiCollection)[49]
    public 'list' =>
     array
       0 =>
        object(osapiPerson)[13]
         ...
       1 =>
        object(osapiPerson)[14]
         ...
       2 =>
        object(osapiPerson)[15]
         ...


                                              10
3 =>
         object(osapiPerson)[16]
          ...
        4 =>
         object(osapiPerson)[17]
          ...
        5 =>
         object(osapiPerson)[18]
          ...



5.2.4    POST /social/rest/activities/@me/@self/@app
        1. Mô t : G i ñi 1 activity (~Feed c a Zing).

        2. Vào:

        Tên tham s (trong ph n body   Mô t
        c a request)
        titleId                       Zing template bundle id
        templateParams                M ng các tham s có d ng
                                      <key, value>
        3. VD

- T o 1 feed trên Zing Me:

$createData = array();
$createData['message'] = "Hello message form testos.me.zing.vn";
$createData['actionLink'] = array(array(
              'text' => "Action link title",
              'href' => "http://testos.me.zing.vn")
);
$activity = new osapiActivity();
$activity->setId(195);
$activity->setField('createData', $createData);

$createParams = array(
          "userId" => "tunguyen.it", // tư ng nhà c a user c n t o feed
          "groupId" => '@self',
          "activity" => $activity,
);
$batch->add($osapi->activities->create($createParams), 'createActivity');
$result = $batch->execute();

K t qu : tr v feed id n u thao tác thành công, ngư c l i thì thao tác v l i.



5.2.5     POST /social/rest/mediaitems/@me/@self
        1. Mô t : T i 1 hình lên album m c ñ nh c a user ñang ñăng nh p.

                                               11
2. Vào:

      Tên tham s (trong ph n body     Mô t
      c a request)
      Content-Type                    ð nh d ng file hình (vd:
                                      “image/png” hay
                                      “image/gif”,…)
      mediaItem                       D li u nh phân c a hình
      3. Ra

         N u upload thành công thì tr v ñ i tư ng MediaItem



VD:

- T i 1 hình lên Zing Photo:

$data = file_get_contents('test.png');
 $user_params = array(
    'userId' => '@me',
    'groupId' => '@self',
    //'albumId' => '', // zing photo không c n tham s albumId
    'type' => 'IMAGE',
    'mediaItem' => $data,
    'contentType' => 'image/jpg'
 );
$batch->add($osapi->mediaItems->uploadContent($user_params), 'upload_mediaItem');
$result = $batch->execute();

*Note: vì Zing Photo không cho phép ñưa tham s album id nên param ñưa vào s không có
tham s này.

- K t qu : tr v ñ i tư ng MediaItem

array
    'albumId' => int 39861
    'id' => int 335711957
    'mimeType' => string 'image/jpg' (length=9)
    'thumbnailUrl' => string 'http://img1-
photo.me.zing.vn/upload/original/2010/08/12/18/1281611819762494268_182_0.jpg' (length=88)
    'type' => string 'IMAGE' (length=5)
    'url' => string 'http://img1-
photo.me.zing.vn/upload/original/2010/08/12/18/1281611819762494268.jpg' (length=82)




                                             12
6 B ng chú gi i
Tên khái ni m                                     Ý nghĩa
OS                                                Open Social
Open Social Application/ App/ OS App                ng d ng m ng xã h i theo chu n Open
                                                  Social
Zing OS API                                       Các hàm API c a chu n Open Social mà Zing
                                                  Me ñã h tr
Connection                                        Hai user trong Zing g i là có “connection” v i
                                                  nhau n u:
                                                  - Có m i quan h Friend
                                                  - Có m i quan h Fan
Activity                                          Tương ñương Feed c a Zing
Item                                              ð i tư ng d li u chu n ñư c mô t trong
                                                  RESTful Protocol Specification v0.9 (VD:
                                                  Person, Activity, MediaItem,…)
OWNER                                             User s h u App hi n th i ñang ch y
VIEWER                                            User ñang s d ng, hi n Zing ch cho phép
                                                  OWNER=VIEWER




7 Tham kh o:
1.   OpenSocial Specification v0.9 & JS Function

http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/OpenSocial-
Specification.html

2.   OpenSocial RESTful Protocol Specification v0.9

http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/REST-API.html

3.   OAuth

Two-legged OAuth:

http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi

https://www.google.com/gadgets/directory/verify

http://wiki.opensocial.org/index.php?title=Validating_Signed_Requests

http://developer.constantcontact.com/book/export/html/279

4.   Opensocial-php-client


                                              13
http://code.google.com/p/opensocial-php-
client/source/browse/trunk/src/examples/listFriends.php

5.   Gadget

http://code.google.com/apis/gadgets/docs/ui.html

6.   XML

http://code.google.com/apis/gadgets/docs/reference.html

                                                                  Nhóm Zing Me Open Social

                                                          Nguy n H ng H i – Nguy n Thanh Tú




                                              14

More Related Content

Viewers also liked

Zing me overview
Zing me overviewZing me overview
Zing me overviewOhay TV
 
Quản lý Zing Me fanpage một cách hiệu quả
Quản lý Zing Me fanpage một cách hiệu quảQuản lý Zing Me fanpage một cách hiệu quả
Quản lý Zing Me fanpage một cách hiệu quảzingopen
 
Community building on Zing Me
Community building on Zing MeCommunity building on Zing Me
Community building on Zing Mezingopen
 
Zing me credential
Zing me credentialZing me credential
Zing me credentialzingopen
 
Zing Me Workshop 11082012
Zing Me Workshop 11082012Zing Me Workshop 11082012
Zing Me Workshop 11082012zingopen
 
Zing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệp
Zing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệpZing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệp
Zing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệpzingopen
 
Zing Me Platform Policy
Zing Me Platform PolicyZing Me Platform Policy
Zing Me Platform Policyzingopen
 
Sơ lược kiến trúc hệ thống Zing Me
Sơ lược kiến trúc hệ thống Zing MeSơ lược kiến trúc hệ thống Zing Me
Sơ lược kiến trúc hệ thống Zing Mezingopen
 

Viewers also liked (8)

Zing me overview
Zing me overviewZing me overview
Zing me overview
 
Quản lý Zing Me fanpage một cách hiệu quả
Quản lý Zing Me fanpage một cách hiệu quảQuản lý Zing Me fanpage một cách hiệu quả
Quản lý Zing Me fanpage một cách hiệu quả
 
Community building on Zing Me
Community building on Zing MeCommunity building on Zing Me
Community building on Zing Me
 
Zing me credential
Zing me credentialZing me credential
Zing me credential
 
Zing Me Workshop 11082012
Zing Me Workshop 11082012Zing Me Workshop 11082012
Zing Me Workshop 11082012
 
Zing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệp
Zing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệpZing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệp
Zing Me cung cấp gói hỗ trợ miễn phí cho Doanh nghiệp
 
Zing Me Platform Policy
Zing Me Platform PolicyZing Me Platform Policy
Zing Me Platform Policy
 
Sơ lược kiến trúc hệ thống Zing Me
Sơ lược kiến trúc hệ thống Zing MeSơ lược kiến trúc hệ thống Zing Me
Sơ lược kiến trúc hệ thống Zing Me
 

Similar to Zing osapi v1.3.3

Zing me open social training 01
Zing me open social training 01Zing me open social training 01
Zing me open social training 01Hai Le
 
Php crawler and parser
Php crawler and parserPhp crawler and parser
Php crawler and parserNgoc Bui Dinh
 
Sử dụng dịch vụ crawler và parser trong PHP
Sử dụng dịch vụ crawler và parser trong PHPSử dụng dịch vụ crawler và parser trong PHP
Sử dụng dịch vụ crawler và parser trong PHPAiTi Education
 
Technical note playframework_documentation_working with play - java_vn
Technical note playframework_documentation_working with play - java_vnTechnical note playframework_documentation_working with play - java_vn
Technical note playframework_documentation_working with play - java_vnAsahina Infotech
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTMasterCode.vn
 
Idoc.vn giao trinh-aspnet-nang-cao
Idoc.vn giao trinh-aspnet-nang-caoIdoc.vn giao trinh-aspnet-nang-cao
Idoc.vn giao trinh-aspnet-nang-caoTèo Ngô
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHPNIIT - ICT Hà Nội
 
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPTBÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPTMasterCode.vn
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-zManhh Nguyễn
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldMultiUni
 
Ajax report
Ajax reportAjax report
Ajax reportdvcuong
 

Similar to Zing osapi v1.3.3 (20)

Yii
YiiYii
Yii
 
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAYLuận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
 
Asp control
Asp controlAsp control
Asp control
 
Zing me open social training 01
Zing me open social training 01Zing me open social training 01
Zing me open social training 01
 
Php crawler and parser
Php crawler and parserPhp crawler and parser
Php crawler and parser
 
Os php-5.3new1
Os php-5.3new1Os php-5.3new1
Os php-5.3new1
 
Sử dụng dịch vụ crawler và parser trong PHP
Sử dụng dịch vụ crawler và parser trong PHPSử dụng dịch vụ crawler và parser trong PHP
Sử dụng dịch vụ crawler và parser trong PHP
 
Technical note playframework_documentation_working with play - java_vn
Technical note playframework_documentation_working with play - java_vnTechnical note playframework_documentation_working with play - java_vn
Technical note playframework_documentation_working with play - java_vn
 
Asp
AspAsp
Asp
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
Idoc.vn giao trinh-aspnet-nang-cao
Idoc.vn giao trinh-aspnet-nang-caoIdoc.vn giao trinh-aspnet-nang-cao
Idoc.vn giao trinh-aspnet-nang-cao
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPTBÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-z
 
Ung dun web chuong 2
Ung dun web  chuong 2Ung dun web  chuong 2
Ung dun web chuong 2
 
On thi kpdl
On thi kpdlOn thi kpdl
On thi kpdl
 
VTV Mobile Performace Test
VTV Mobile Performace TestVTV Mobile Performace Test
VTV Mobile Performace Test
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello World
 
Ajax report
Ajax reportAjax report
Ajax report
 

Recently uploaded

Catalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdf
Catalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdfCatalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdf
Catalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdfOrient Homes
 
Phân tích mô hình PESTEL Coca Cola - Nhóm 4.pptx
Phân tích mô hình PESTEL Coca Cola - Nhóm 4.pptxPhân tích mô hình PESTEL Coca Cola - Nhóm 4.pptx
Phân tích mô hình PESTEL Coca Cola - Nhóm 4.pptxtung2072003
 
CATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdf
CATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdfCATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdf
CATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdfOrient Homes
 
catalogue-cap-trung-va-ha-the-ls-vina.pdf
catalogue-cap-trung-va-ha-the-ls-vina.pdfcatalogue-cap-trung-va-ha-the-ls-vina.pdf
catalogue-cap-trung-va-ha-the-ls-vina.pdfOrient Homes
 
Catalog ống nước Europipe upvc-ppr2022.pdf
Catalog ống nước Europipe upvc-ppr2022.pdfCatalog ống nước Europipe upvc-ppr2022.pdf
Catalog ống nước Europipe upvc-ppr2022.pdfOrient Homes
 
CATALOGUE Cáp điện Taya (FR, FPR) 2023.pdf
CATALOGUE Cáp điện Taya (FR, FPR) 2023.pdfCATALOGUE Cáp điện Taya (FR, FPR) 2023.pdf
CATALOGUE Cáp điện Taya (FR, FPR) 2023.pdfOrient Homes
 
CATALOGUE ART-DNA 2023-2024-Orient Homes.pdf
CATALOGUE ART-DNA 2023-2024-Orient Homes.pdfCATALOGUE ART-DNA 2023-2024-Orient Homes.pdf
CATALOGUE ART-DNA 2023-2024-Orient Homes.pdfOrient Homes
 
2020.Catalogue CÁP TR131321313UNG THẾ.pdf
2020.Catalogue CÁP TR131321313UNG THẾ.pdf2020.Catalogue CÁP TR131321313UNG THẾ.pdf
2020.Catalogue CÁP TR131321313UNG THẾ.pdfOrient Homes
 
Catalogue-thiet-bi-chieu-sang-DUHAL-2023.pdf
Catalogue-thiet-bi-chieu-sang-DUHAL-2023.pdfCatalogue-thiet-bi-chieu-sang-DUHAL-2023.pdf
Catalogue-thiet-bi-chieu-sang-DUHAL-2023.pdfOrient Homes
 
Catalog Dây cáp điện CADIVI ky thuat.pdf
Catalog Dây cáp điện CADIVI ky thuat.pdfCatalog Dây cáp điện CADIVI ky thuat.pdf
Catalog Dây cáp điện CADIVI ky thuat.pdfOrient Homes
 
Xu hướng tạp dề đồng phục hiện đại trong các ngành nghề
Xu hướng tạp dề đồng phục hiện đại trong các ngành nghềXu hướng tạp dề đồng phục hiện đại trong các ngành nghề
Xu hướng tạp dề đồng phục hiện đại trong các ngành nghềMay Ong Vang
 
CATALOG cáp cadivi_1.3.2024_compressed.pdf
CATALOG cáp cadivi_1.3.2024_compressed.pdfCATALOG cáp cadivi_1.3.2024_compressed.pdf
CATALOG cáp cadivi_1.3.2024_compressed.pdfOrient Homes
 
Catalogue cáp điện GOLDCUP 2023(kỹ thuật).pdf
Catalogue cáp điện GOLDCUP 2023(kỹ thuật).pdfCatalogue cáp điện GOLDCUP 2023(kỹ thuật).pdf
Catalogue cáp điện GOLDCUP 2023(kỹ thuật).pdfOrient Homes
 

Recently uploaded (13)

Catalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdf
Catalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdfCatalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdf
Catalogue Cadisun CÁP HẠ THẾ (26-09-2020).pdf
 
Phân tích mô hình PESTEL Coca Cola - Nhóm 4.pptx
Phân tích mô hình PESTEL Coca Cola - Nhóm 4.pptxPhân tích mô hình PESTEL Coca Cola - Nhóm 4.pptx
Phân tích mô hình PESTEL Coca Cola - Nhóm 4.pptx
 
CATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdf
CATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdfCATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdf
CATALOG Đèn, thiết bị điện ASIA LIGHTING 2023.pdf
 
catalogue-cap-trung-va-ha-the-ls-vina.pdf
catalogue-cap-trung-va-ha-the-ls-vina.pdfcatalogue-cap-trung-va-ha-the-ls-vina.pdf
catalogue-cap-trung-va-ha-the-ls-vina.pdf
 
Catalog ống nước Europipe upvc-ppr2022.pdf
Catalog ống nước Europipe upvc-ppr2022.pdfCatalog ống nước Europipe upvc-ppr2022.pdf
Catalog ống nước Europipe upvc-ppr2022.pdf
 
CATALOGUE Cáp điện Taya (FR, FPR) 2023.pdf
CATALOGUE Cáp điện Taya (FR, FPR) 2023.pdfCATALOGUE Cáp điện Taya (FR, FPR) 2023.pdf
CATALOGUE Cáp điện Taya (FR, FPR) 2023.pdf
 
CATALOGUE ART-DNA 2023-2024-Orient Homes.pdf
CATALOGUE ART-DNA 2023-2024-Orient Homes.pdfCATALOGUE ART-DNA 2023-2024-Orient Homes.pdf
CATALOGUE ART-DNA 2023-2024-Orient Homes.pdf
 
2020.Catalogue CÁP TR131321313UNG THẾ.pdf
2020.Catalogue CÁP TR131321313UNG THẾ.pdf2020.Catalogue CÁP TR131321313UNG THẾ.pdf
2020.Catalogue CÁP TR131321313UNG THẾ.pdf
 
Catalogue-thiet-bi-chieu-sang-DUHAL-2023.pdf
Catalogue-thiet-bi-chieu-sang-DUHAL-2023.pdfCatalogue-thiet-bi-chieu-sang-DUHAL-2023.pdf
Catalogue-thiet-bi-chieu-sang-DUHAL-2023.pdf
 
Catalog Dây cáp điện CADIVI ky thuat.pdf
Catalog Dây cáp điện CADIVI ky thuat.pdfCatalog Dây cáp điện CADIVI ky thuat.pdf
Catalog Dây cáp điện CADIVI ky thuat.pdf
 
Xu hướng tạp dề đồng phục hiện đại trong các ngành nghề
Xu hướng tạp dề đồng phục hiện đại trong các ngành nghềXu hướng tạp dề đồng phục hiện đại trong các ngành nghề
Xu hướng tạp dề đồng phục hiện đại trong các ngành nghề
 
CATALOG cáp cadivi_1.3.2024_compressed.pdf
CATALOG cáp cadivi_1.3.2024_compressed.pdfCATALOG cáp cadivi_1.3.2024_compressed.pdf
CATALOG cáp cadivi_1.3.2024_compressed.pdf
 
Catalogue cáp điện GOLDCUP 2023(kỹ thuật).pdf
Catalogue cáp điện GOLDCUP 2023(kỹ thuật).pdfCatalogue cáp điện GOLDCUP 2023(kỹ thuật).pdf
Catalogue cáp điện GOLDCUP 2023(kỹ thuật).pdf
 

Zing osapi v1.3.3

  • 1. CÔNG TY VNG ZING ME OPENSOCIAL API VERSION 1.3.3 Nhóm Zing Me Open Social TP. HCM 10/2010 1
  • 2. M CL C 1 Gi i thi u ............................................................................................................................ 3 2 Mô hình ho t ñ ng c a ng d ng trên Zing Me theo chu n Open Social ........................... 3 3 Các th XML mà Zing OS c n h tr .................................................................................. 4 3.1 <Module> ..................................................................................................................... 4 3.2 <ModulePrefs> ............................................................................................................. 4 3.3 <Content> .................................................................................................................... 4 3.4 <Require> .................................................................................................................... 5 4 JS API................................................................................................................................. 5 4.1 Danh m c hàm ............................................................................................................. 5 4.1.1 Gadgets ................................................................................................................... 5 5 REST API ........................................................................................................................... 7 5.1 Quy ñ nh chung ............................................................................................................ 7 5.1.1 Quy ñ nh v vi c tr d li u v ................................................................................. 7 5.1.2 Vi c c p quy n cho Application & ki m tra quy n .................................................... 8 5.2 Danh m c các API h tr ............................................................................................. 8 5.2.1 GET /social/rest/people/{guid}/@self........................................................................ 8 5.2.2 GET /social/rest/people/@me/@self .......................................................................10 5.2.3 GET /social/rest/people/{guid}/@friends .................................................................10 5.2.4 POST /social/rest/activities/@me/@self/@app .......................................................11 5.2.5 POST /social/rest/mediaitems/@me/@self .............................................................11 6 B ng chú gi i .....................................................................................................................13 7 Tham kh o: ........................................................................................................................13 2
  • 3. 1 Gi i thi u B API này g m các hàm c a Zing Open API phiên b n 1.0, ñã ñư c ñi u ch nh ñ tương thích v i RESTful Protocol Specification v0.9, và b sung b JS API ñ ph c v cho Gadget theo mô hình ho t ñ ng c a Open Social. 2 Mô hình ho t đ ng c a ng d ng trên Zing Me theo chu n Open Social Gadget (OS App Front-End) 1. JS API 5. JS API gadget.io callback makeRequest() 2. OAuth phone home request 3. REST API Home Server GET/POST (OS App OAuth Zing Me Container Back-End) Reserve phone home 4. respond OS App Database Hình 1: Mô hình ho t ñ ng c a OS App 3
  • 4. Chú gi i: • Open Social App có th g m Gadget + Home Server ho c ch là Gadget. OS quy ñ nh quy n c a Gadget và Home Server ñ i v i Open Social data là gi ng nhau. • Gadget giao ti p v i Home Server thông qua trung gian là Zing Me Container, s d ng JS API (namespace gadget.io). B ng cách này, thông qua cơ ch 2 Legged OAuth HomeServer ch c ch n các request nh n ñư c là ñ n t Gadget c a Home Server ñó, và Zing Me Container bi t ñư c request là ñ n t User nào (Owner). • Home Server cũng có th giao ti p Server – Server v i Zing Me Container thông qua REST API. 3 Các th XML mà Zing OS c n h tr 3.1 <Module> Là th g c 3.2 <ModulePrefs> Ch a các thông tin mô t Gadget Thu c tính Mô t title Tên c a Gadget, s ñư c hi n tr trên màn hình. description Mô t v Gadget. author Tên tác gi 3.3 <Content> Ch a mã ngu n c a Gadget Thu c tính Mô t type ”html” view V trí mà Gadget ñư c hi n th preferred_height Chi u cao m c ñ nh c a Gadget (pixel) preferred_width Chi u r ng m c ñ nh c a Gadget (pixel) Mã ngu n c a Gadget ñư c ñ t trong th CDATA: <![CDATA[ source_code ]]> VD: 4
  • 5. <Content view="home"> <![CDATA[ Hello, home view! ]]> </Content> 3.4 <Require> Khai báo Gadget s s d ng các thư vi n JS nào Thu c tính Mô t feature Tên thư vi n Các thư vi n h tr Tên thư vi n Mô t flash H tr nhúng Flash vào Gadget tabs H tr t o Tab cho giao di n c a Gadget 4 JS API 4.1 Danh m c hàm 4.1.1 Gadgets Mô t : ñ i tư ng h tr cho Gadget 4.1.1.1 io Mô t : ñ i tư ng h tr truy v n và nh n d li u t Home Server 4.1.1.1.1 makeRequest 1. Mô t : Kh i t o Request ñ n HomeServer 2. Vào Tên tham s Ki u d li u Mô t url String url c a HomeServer callback Function Hàm s nh n d li u tr v 3. Ra Không 5
  • 6. 4. Ví d : function makeRequest() { var params = {}; var url = "http://graargh.returnstrue.com/buh/fetchme.php"; gadgets.io.makeRequest(url, response); }; function response(obj) { //obj.text contains the text of the response output(obj.text); }; makeRequest(); 4.1.1.2 Flash Mô t : ð i tư ng h tr vi c nhúng Flash vào Gadget 4.1.1.2.1 embedFlash 1. Mô t : Nhúng file Flash vào Gadget 2. Vào Tên tham s Ki u d li u Mô t swfUrl String url c a file Flash swfContainer String ID c a DOM s ch a Flash swfVersion Number Phiên b n FlashPlayer t i thi u c n có opt_params Object Các ñ i tư ng ch a tham s c a HTML 3. Ra Không 4. Ví d : gadgets.flash.embedFlash(url, "flashcontainer", { swf_version: 6, id: "flashid", width: 300, height: 250 }) 6
  • 7. 5 REST API 5.1 Quy đ nh chung 5.1.1 Quy đ nh v vi c tr d li u v 1. Các ñ i tư ng d li u tr v (Person, Activity, MediaItem,…) ñư c bi u di n dư i ñ nh d ng JSON, theo như quy ñ nh trong ph n “Data Representations” c a RESTful Protocol Specification v0.9. 2. ð i tư ng g c (root element) ph i ch a các giá tr sau (theo ñ c t c a OpenSearch): Tên Mô t startIndex V trí c a item ñ u tiên c a k t qu tr v c a l n g i hàm này trong result set. VD: truy v n có result set g m 10 k t qu , startIndex=5 t c là item ñ u tiên trong l n g i hàm này là v trí th 5 trong 10 k t qu ñó. itemsPerPage S item th c s ñư c tr v trong l n g i hàm này. totalResults T ng c ng các k t qu c a truy v n n u b qua vi c phân trang k t qu (t c là t ng s k t qu trong result set. entry Ch a k t qu tr v Có d ng m ng các item ho c 1 item tùy theo quy ñ nh lúc g i hàm. M i item là m t ñ i tư ng d li u. VD: { "startIndex" : 1, "itemsPerPage" : 10, "totalResults" : 100, "entry" : [ {...first item...}, {...second item...} ... ] } Trư ng h p ch tr v 1 item: { "startIndex" : 1, "itemsPerPage" : 10, "totalResults" : 100, "entry" : {...only item...} } Ngoài ra có th ch a thêm các giá tr khác tùy ch n. 7
  • 8. 3. N u xu t hi n l i, thì tr v mã l i tương ng như sau: # Tên l i Mã l i 1 G i hàm sai cú pháp 400 Bad Request 2 Quá trình ch ng th c OAuth 401 Unauthorized có l i, ho c App không ñư c c p quy n 3 App không ñư c c p quy n 403 Forbidden ñ th c hi n hành vi này 4 Không tìm th y ñ i tư ng 404 Not Found ñư c yêu c u 5 Hàm chưa ñư c Zing h tr 501 Not Implemented 6 L i không xác ñ nh 500 Internal Server Error 5.1.2 Vi c c p quy n cho Application & ki m tra quy n Hi n t i ZingMe chưa h tr User c p quy n cho t ng Application mà User ñã cài vào. Do ñó quy n c a Application s căn c vào quy n m c ñ nh c a h th ng c p cho Application ñó & các Permission do User c u hình trong trang “cài ñ t quy n riêng tư”. Vi c ki m tra quy n (Authorization) ñư c tuân theo giao th c Two-legged OAuth. 5.2 Danh m c các API h tr ði u ki n b o m t chung: User g i request ph i là OWNER, và OWNER ph i ñang ñăng nh p vào Zing Me. 5.2.1 GET /social/rest/people/{guid}/@self 1. Mô t : l y thông tin c a User d a trên ID. 2. ði u ki n b o m t: {guid} ph i là ID c a OWNER ho c b n c a OWNER. 3. Input: Tên tham s Mô t {guid} Id c a User 4. Output: ð i tư ng People VD: cách l y thông tin c a m t user // t o ñ i tư ng osapi $consumerKey = "c969713e3048fa919202961e1b9eb9c7"; $consumerSecret = "bc192fd03531094a78b60a91df93d5c7"; $userId = $_GET[“ownerId”]; // tham s này t có khi makeRequest Gadget 8
  • 9. $storage = new osapiFileStorage('/tmp/osapi'); $provider = new osapiZingMeProvider(); $auth = new ZM_osapOAuth($consumerKey, $consumerSecret, $userId); $osapi = new osapi($provider, $auth); // ti n hành l y thông tin user $extrafields = array( 'thumbnailUrl'); $self_request_params = array( 'userId' => "tunguyen.it", // ID c a user (tương ng v i user name c a Zing Me). 'groupId' => '@self', // l y thông tin c a user 'fields' => $extrafields // các trư ng b sung thêm ); $batch->add($osapi->people->get($self_request_params), 'self'); $result = $batch->execute(); //ch y request và nh n v k t qu - K t qu : object(osapiPerson)[12] public 'displayName' => string 'Nguy n Thanh Tú' (length=18) public 'gender' => string 'male' (length=4) public 'id' => string 'tunguyen.it' (length=11) public 'name' => array 'familyName' => string 'Nguy n Thanh' (length=14) 'givenName' => string 'Tú' (length=3) 'formatted' => string 'Nguy n Thanh Tú' (length=18) public 'isOwner' => boolean true public 'isViewer' => boolean true 9
  • 10. 5.2.2 GET /social/rest/people/@me/@self 1. Mô t : L y thông tin profile c a OWNER 2. Vào: không có 3. Ra ð i tư ng Person c a OWNER VD: tương t như ví d trư c, thay userId b ng @me 5.2.3 GET /social/rest/people/{guid}/@friends 1. Mô t : L y danh sách các b n c a user 2. ði u ki n b o m t: {guid} ph i là ID c a OWNER. 3. Vào: Tên tham s Mô t {guid} Id c a User 4. Ra: Các ñ i tư ng Person VD: l y danh sách b n bè c a 1 user $extrafields = array( 'thumbnailUrl'); $friends_request_params = array( 'userId' => "@me", // used id. 'groupId' => '@friends', // @friends dùng ñ l y danh sách b n bè. 'fields' => $extrafields, // các trư ng b sung thêm. 'count' => 10, // s lư ng c n l y 'startIndex' => 0 // v trí b t ñ u ); $batch->add($osapi->people->get($friends_request_params), 'friends'); $result = $batch->execute(); - K t qu : object(osapiCollection)[49] public 'list' => array 0 => object(osapiPerson)[13] ... 1 => object(osapiPerson)[14] ... 2 => object(osapiPerson)[15] ... 10
  • 11. 3 => object(osapiPerson)[16] ... 4 => object(osapiPerson)[17] ... 5 => object(osapiPerson)[18] ... 5.2.4 POST /social/rest/activities/@me/@self/@app 1. Mô t : G i ñi 1 activity (~Feed c a Zing). 2. Vào: Tên tham s (trong ph n body Mô t c a request) titleId Zing template bundle id templateParams M ng các tham s có d ng <key, value> 3. VD - T o 1 feed trên Zing Me: $createData = array(); $createData['message'] = "Hello message form testos.me.zing.vn"; $createData['actionLink'] = array(array( 'text' => "Action link title", 'href' => "http://testos.me.zing.vn") ); $activity = new osapiActivity(); $activity->setId(195); $activity->setField('createData', $createData); $createParams = array( "userId" => "tunguyen.it", // tư ng nhà c a user c n t o feed "groupId" => '@self', "activity" => $activity, ); $batch->add($osapi->activities->create($createParams), 'createActivity'); $result = $batch->execute(); K t qu : tr v feed id n u thao tác thành công, ngư c l i thì thao tác v l i. 5.2.5 POST /social/rest/mediaitems/@me/@self 1. Mô t : T i 1 hình lên album m c ñ nh c a user ñang ñăng nh p. 11
  • 12. 2. Vào: Tên tham s (trong ph n body Mô t c a request) Content-Type ð nh d ng file hình (vd: “image/png” hay “image/gif”,…) mediaItem D li u nh phân c a hình 3. Ra N u upload thành công thì tr v ñ i tư ng MediaItem VD: - T i 1 hình lên Zing Photo: $data = file_get_contents('test.png'); $user_params = array( 'userId' => '@me', 'groupId' => '@self', //'albumId' => '', // zing photo không c n tham s albumId 'type' => 'IMAGE', 'mediaItem' => $data, 'contentType' => 'image/jpg' ); $batch->add($osapi->mediaItems->uploadContent($user_params), 'upload_mediaItem'); $result = $batch->execute(); *Note: vì Zing Photo không cho phép ñưa tham s album id nên param ñưa vào s không có tham s này. - K t qu : tr v ñ i tư ng MediaItem array 'albumId' => int 39861 'id' => int 335711957 'mimeType' => string 'image/jpg' (length=9) 'thumbnailUrl' => string 'http://img1- photo.me.zing.vn/upload/original/2010/08/12/18/1281611819762494268_182_0.jpg' (length=88) 'type' => string 'IMAGE' (length=5) 'url' => string 'http://img1- photo.me.zing.vn/upload/original/2010/08/12/18/1281611819762494268.jpg' (length=82) 12
  • 13. 6 B ng chú gi i Tên khái ni m Ý nghĩa OS Open Social Open Social Application/ App/ OS App ng d ng m ng xã h i theo chu n Open Social Zing OS API Các hàm API c a chu n Open Social mà Zing Me ñã h tr Connection Hai user trong Zing g i là có “connection” v i nhau n u: - Có m i quan h Friend - Có m i quan h Fan Activity Tương ñương Feed c a Zing Item ð i tư ng d li u chu n ñư c mô t trong RESTful Protocol Specification v0.9 (VD: Person, Activity, MediaItem,…) OWNER User s h u App hi n th i ñang ch y VIEWER User ñang s d ng, hi n Zing ch cho phép OWNER=VIEWER 7 Tham kh o: 1. OpenSocial Specification v0.9 & JS Function http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/OpenSocial- Specification.html 2. OpenSocial RESTful Protocol Specification v0.9 http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/REST-API.html 3. OAuth Two-legged OAuth: http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi https://www.google.com/gadgets/directory/verify http://wiki.opensocial.org/index.php?title=Validating_Signed_Requests http://developer.constantcontact.com/book/export/html/279 4. Opensocial-php-client 13
  • 14. http://code.google.com/p/opensocial-php- client/source/browse/trunk/src/examples/listFriends.php 5. Gadget http://code.google.com/apis/gadgets/docs/ui.html 6. XML http://code.google.com/apis/gadgets/docs/reference.html Nhóm Zing Me Open Social Nguy n H ng H i – Nguy n Thanh Tú 14