Your SlideShare is downloading. ×
CÔNG TY VNGZING ME OPENSOCIAL API       VERSION 1.3.3       Nhóm Zing Me Open Social               TP. HCM               1...
M CL C1     Gi i thi u ......................................................................................................
1 Gi i thi uB 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íchv i RESTful Protocol Sp...
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à ...
<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...
4. Ví d :function makeRequest() {  var params = {};  var url = "http://graargh.returnstrue.com/buh/fetchme.php";  gadgets....
5 REST API5.1 Quy đ nh chung5.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...
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 ...
$storage = new osapiFileStorage(/tmp/osapi);$provider = new osapiZingMeProvider();$auth = new ZM_osapOAuth($consumerKey, $...
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 ...
3 =>         object(osapiPerson)[16]          ...        4 =>         object(osapiPerson)[17]          ...        5 =>    ...
2. Vào:      Tên tham s (trong ph n body     Mô t      c a request)      Content-Type                    ð nh d ng file hì...
6 B ng chú gi iTên khái ni m                                     Ý nghĩaOS                                                ...
http://code.google.com/p/opensocial-php-client/source/browse/trunk/src/examples/listFriends.php5.   Gadgethttp://code.goog...
Upcoming SlideShare
Loading in...5
×

Zing osapi v1.3.3

1,310

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,310
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Zing osapi v1.3.3"

  1. 1. CÔNG TY VNGZING ME OPENSOCIAL API VERSION 1.3.3 Nhóm Zing Me Open Social TP. HCM 10/2010 1
  2. 2. M CL C1 Gi i thi u ............................................................................................................................ 32 Mô hình ho t ñ ng c a ng d ng trên Zing Me theo chu n Open Social ........................... 33 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> .................................................................................................................... 54 JS API................................................................................................................................. 5 4.1 Danh m c hàm ............................................................................................................. 5 4.1.1 Gadgets ................................................................................................................... 55 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 .............................................................116 B ng chú gi i .....................................................................................................................137 Tham kh o: ........................................................................................................................13 2
  3. 3. 1 Gi i thi uB 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íchv 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. 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 tr3.1 <Module>Là th g c3.2 <ModulePrefs>Ch a các thông tin mô t GadgetThu c tính Mô ttitle 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 gi3.3 <Content>Ch a mã ngu n c a GadgetThu c tính Mô ttype ”html”view V trí mà Gadget ñư c hi n thpreferred_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. 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àoThu c tính Mô tfeature Tên thư vi nCác thư vi n h trTên thư vi n Mô tflash H tr nhúng Flash vào Gadgettabs H tr t o Tab cho giao di n c a Gadget4 JS API4.1 Danh m c hàm4.1.1 GadgetsMô t : ñ i tư ng h tr cho Gadget4.1.1.1 ioMô t : ñ i tư ng h tr truy v n và nh n d li u t Home Server4.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. 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 FlashMô t : ð i tư ng h tr vi c nhúng Flash vào Gadget4.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. 7. 5 REST API5.1 Quy đ nh chung5.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. 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 Error5.1.2 Vi c c p quy n cho Application & ki m tra quy nHi 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 pvà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 PeopleVD: 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. 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. 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 OWNERVD: tương t như ví d trư c, thay userId b ng @me5.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 PersonVD: 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. 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. 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 MediaItemVD:- 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 MediaItemarray 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. 13. 6 B ng chú gi iTên khái ni m Ý nghĩaOS Open SocialOpen Social Application/ App/ OS App ng d ng m ng xã h i theo chu n Open SocialZing OS API Các hàm API c a chu n Open Social mà Zing Me ñã h trConnection 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 FanActivity Tương ñương Feed c a ZingItem ð 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 yVIEWER User ñang s d ng, hi n Zing ch cho phép OWNER=VIEWER7 Tham kh o:1. OpenSocial Specification v0.9 & JS Functionhttp://www.opensocial.org/Technical-Resources/opensocial-spec-v09/OpenSocial-Specification.html2. OpenSocial RESTful Protocol Specification v0.9http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/REST-API.html3. OAuthTwo-legged OAuth:http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapihttps://www.google.com/gadgets/directory/verifyhttp://wiki.opensocial.org/index.php?title=Validating_Signed_Requestshttp://developer.constantcontact.com/book/export/html/2794. Opensocial-php-client 13
  14. 14. http://code.google.com/p/opensocial-php-client/source/browse/trunk/src/examples/listFriends.php5. Gadgethttp://code.google.com/apis/gadgets/docs/ui.html6. XMLhttp://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

×