首頁 >後端開發 >php教程 >微博應用--方舟船票

微博應用--方舟船票

WBOY
WBOY原創
2016-07-25 09:07:021139瀏覽


微博小應用

2012,傳說中的末日,不管真假,反正我是有諾亞方舟船票了…..

圍觀: http://endworld.sinaapp.com

—————————-

這是學習微博授權機寫的一個基於sae的小應用,用到了大量的GD函數

現在做下簡單學習總結

1.首先要創建應用,申請appkey

新浪微博: http://open.weibo.com

騰訊社群: http://opensns.qq.com

騰訊微博: http://open.t.qq.com

2.建立完應用後,接下來我們下載相關的sdk,這裡僅以php為例,註解已經寫的很明白

新浪微博設定檔:

騰訊sdk : 麻花藤的東西很蛋疼,請直接下載檔,都有註解

3.一個好的應用最重要的是創意,盡情發揮你的想像
方舟船票是毫無新意的模仿,這裡只簡單介紹下.
①首先在congfig.php 或appkey.php 中填入申請到的appid 和appkey,然後配置回調位址.
②取得使用者資訊,根據使用者資訊,使用php的gd庫產生對應圖片,產生圖片時要注意的地方是:如果使用者沒有自訂過頭像,頭像類型是png,否則是jpg.如果是殭屍用戶,可能獲取不到圖像和暱稱.
③新浪的應用未上線時,即沒通過審核時,只有開發者的帳號可以使用應用,其他用戶測試只能先在應用程式管理後台添加測試用戶,並且測試用戶大於10人才有機會通過審核,這是比較蛋疼的地方,但審核還是很容易通過的
⑤騰訊的應用未上線其他用戶也能正常使用,但透過審核比較困難,應用程式中盡量不要用到非主旋律的詞彙
4.方舟船票文件說明
index.php 首頁登入按鈕放置頁
ticket-hall.php 微博回呼頁,引導使用者開始使用
ticket.php 產生內容,為發送到微博做好準備
toweibo.php 將資料提交到微博
suc.php 告知使用者成功

sdk下載: http://helong.org/download001/weibosdk.7z


方舟船票源碼: http://helong.org/download001/endworld.7z

@王翔宇童鞋的疑問,在這裡做說明:

程式中涉及SAE中的storage等特性,所以只適用與sae...... 不能直接用於普通空間.......


index.php 31行header('Location: http://endworld.sinaapp.com/qticket-hall.php');這是微博回呼位址

qticket.php 16行,141行可以修改為相對路徑,同理,涉及到的圖片都可以修改為相對路徑,個人程式碼性格不好,寫的是絕對路徑

ticket.php imagejpeg($im,SAE_TMP_PATH.'linshi.jpg',100);//讀取寫入方式:儲存為臨時檔案,這裡SAE_TMP_PATH是SAE中臨時檔案

ticket.php 156行$s->upload('2012',$userid.'.jpg',SAE_TMP_PATH.'linshi.jpg');//這裡用到了SAEstorage見http://apidoc.sinaapp.com/sae /SaeStorage.html#upload

有什麼需要改進的地方,歡迎童鞋拍磚交流

  1. session_start();
  2. include_once( 'config.php' );
  3. include_once( 'saetv2.ex.class.php' );
  4. $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
  5. ////////////
  6. ///OA授權之後,取得授權使用者的UID
  7. $uid_get = $c->get_uid();
  8. $uid = $uid_get['uid'];
  9. $user_message = $c->show_user_by_id( $ uid);//根據ID取得使用者等基本資訊
  10. //////////////////////
  11. //取得使用者發佈的微博資訊清單
  12. //user_timeline_by_id($uid,$page = 1,$count = 50,$since_id = 0,$max_id = 0,$feature = 0,$trim_user = 0,$base_app = 0)
  13. //$page: 頁碼
  14. ///$count: 每次回傳的最大記錄數,最多回傳200條,預設50。
  15. //$uid: 指定使用者UID或微博暱稱
  16. //$since_id: 若指定此參數,則只傳回ID比since_id大的微博訊息(即比since_id發表時間晚的微博訊息)。可選。
  17. //$max_id: 若指定此參數,則傳回ID小於或等於max_id的提到目前登入使用者微博訊息。可選。
  18. //$base_app: 是否基於目前應用程式來取得資料。 1為限製本應用微博,0為不做限制。預設為0。
  19. //$feature: 過濾類型ID,0:全部、1:原創、2:圖片、3:影片、4:音樂,預設為0。
  20. //$trim_user: 傳回值中user訊息開關,0:傳回完整的user資訊、1:user欄位僅回傳uid,預設為0。
  21. $ms = $c->user_timeline_by_id($uid); // done
  22. ///////////////////
  23. //取得使用者發佈的微博資訊清單
  24. //user_timeline_by_name ($screen_name,$page = 1,$count = 50,$since_id = 0,$max_id = 0,$feature = 0,$trim_user = 0,$base_app = 0)
  25. //$screen_name: 微博暱稱,主要是用來區分用戶UID跟微博暱稱,當二者一樣而產生歧義的時候,建議使用該參數
  26. ?>
  27. 新浪微博V2介面示範程式-Powered by Sina App Engine
  28. =$user_message['screen_name ']?>,您好!
  29. 寄新微博

  30. ///////////////
  31. //發布一則微博訊息。
  32. //update ($status,$lat緯度,$long經度,$annotations方便第三方記錄資料例如array("a"=>"b", "c"=>"d")) )
  33. if( isset($_REQUEST['text']) ) {
  34. $ret = $c->update( $_REQUEST['text'] ); //發送微博
  35. if ( isset($ret ['error_code']) && $ret['error_code'] > 0 ) {
  36. echo "

    傳送失敗,錯誤:{$ret['error_code']}:{$ret['error']}

    ";
  37. } else {
  38. echo "

    發送成功

    ";
  39. }
  40. }
  41. //////////// //////////////
  42. echo "
    ------發表圖片微博----------
    ";
  43. //發表圖片微博,圖片//$status: 要更新的微博資訊。訊息內容不超過140個漢字, 為空回傳400錯誤。
  44. //$pic_path: 要發佈的圖片路徑, 支援url。只支援png/jpg/gif三種格式,
  45. //$lat: 緯度,發表目前微博所在的地理位置,有效範圍 -90.0到+90.0, +表示北緯。可選。
  46. //$long: 可選參數,經度。有效範圍-180.0到+180.0, +表示東經。可選
  47. $status='發表圖片微博測試測試2012年4月23日14:25:43';
  48. $pic_path='http://www.baidu.com/img/baidu_sylogo1.gif ';
  49. $ret13 = $c->upload($status,$pic_path,$lat,$long);
  50. if( isset($ret13['error_code']) && $ret13['error_code'] > 0 ) {
  51. echo "

    發表圖片微博失敗,錯誤:{$ret7['error_code']}:{$ret7['error']}

    ";
  52. } else {
  53. echo "

    發表圖片微博成功

    ";
  54. }
  55. ////////////////////
  56. echo "
    --------追蹤使用者--------
    ";
  57. //追蹤使用者
  58. //根據uid追蹤:follow_by_id ($uid)
  59. $ret2 = $c->follow_by_name('tohelong');
  60. if ( isset($ret2['error_code']) && $ret2['error_code'] > 0 ) {
  61. echo "

    關注失敗,錯誤:{$ret2['error_code']}:{$ret2['error']}

    ";
  62. } else {
  63. echo "

    專注於成功

    ";
  64. }
  65. ////////////////
  66. //為目前登入使用者新增新的使用者標籤
  67. echo "
    -- -------新增標籤-------
    ";
  68. $ret6 = $c->add_tags("tag2,tag3,tag4,標籤測試");;
  69. if ( isset($ret6['error_code']) && $ret6['error_code'] > 0 ) {
  70. echo "

    新增標籤失敗,錯誤:{$ret6['error_code']}:{$ret6 ['error']}

    ";
  71. } else {
  72. echo "

    新增標籤成功

    ";
  73. }
  74. ///////// ////////////////
  75. echo "
    --------收藏一條微博--------
    ";
  76. //收藏一條微博資訊
  77. $sid='3437771555685532';
  78. $ret7 = $c->add_to_favorites ($sid);//$sid =收藏的微博id
  79. if( isset($ret7['error_code']) && $ret7['error_code'] > 0 ) {
  80. echo "

    收藏失敗,錯誤:{$ret7['error_code']}:{$ret7[' error']}

    ";
  81. } else {
  82. echo "

    收藏成功

    ";
  83. }
  84. //////// ///////////////
  85. echo "
    --------互粉列表--------
    ";
  86. //互粉清單
  87. $ret8 = $c-> bilateral ($uid,1,50,0);
  88. //print_r($ret8);
  89. echo $ret8['users'][ 0]['location'];
  90. //////////////////////
  91. echo "
    -------表情- --------
    ";
  92. $ret9 = $c->emotions ($type = "face",$language = "cnname");
  93. //"face":普通表情,"ani":魔法表情,"cartoon":動畫表情
  94. //print_r($ret9);
  95. echo "微博應用--方舟船票 ";
  96. //////////////////////
  97. echo "
    --------評論微博---- ----
    ";
  98. //對一條微博評論
  99. $id='3437771555685532';//帖子id
  100. $comment='評論測試測試';
  101. $ ret10 = $c->send_comment($id,$comment,$comment_ori=0);
  102. //$comment_ori: 當評論轉發微博時,是否評論給原微博,0:否、1:是,默認為0
  103. if( isset($ret10['error_code']) && $ret10['error_code'] > 0 ) {
  104. echo "

    評論失敗,錯誤:{$ret7['error_code'] }:{$ret7['error']}

    ";
  105. } else {
  106. echo "

    評論成功

    ";
  107. }
  108. //// /////////////////
  109. echo "
    --------根據貼文id取得微博與作者--------";
  110. //根據ID取得單一微博資訊內容
  111. $id='3437771555685532';//貼文id
  112. $ret11 = $c->show_status ($id);
  113. //print_r($ret11);
  114. echo $ret11['text'];
  115. echo $ret11['user']['screen_name'];
  116. echo $ret11['user'][' location'];
  117. ///////////////////
  118. echo "
    -------用戶名id取得資料和微博- --------
    ";
  119. //根據用戶UID或暱稱獲取用戶資料.也返回最新微博。
  120. //show_user_by_name ($screen_name)
  121. $ret12 = $c->show_user_by_id($uid);
  122. //print_r($ret12);
  123. echo $ret12['screen_name']; 🎜>echo "微博應用--方舟船票";
  124. echo $ret12['status']['text'];
  125. ///////// ////////////
  126. echo "
    ----------------
    ";
  127. ?>
  128. =$item['id'];?> =$item['text'];?>=$ item['source'];?>
  • 複製程式碼
    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn