目錄
寄新微博
首頁 後端開發 php教程 微博應用--方舟船票

微博應用--方舟船票

Jul 25, 2016 am 09:07 AM



微博小應用

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

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

    JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

    會話如何劫持工作,如何在PHP中減輕它? 會話如何劫持工作,如何在PHP中減輕它? Apr 06, 2025 am 12:02 AM

    會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

    描述紮實的原則及其如何應用於PHP的開發。 描述紮實的原則及其如何應用於PHP的開發。 Apr 03, 2025 am 12:04 AM

    SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

    PHP 8.1中的枚舉(枚舉)是什麼? PHP 8.1中的枚舉(枚舉)是什麼? Apr 03, 2025 am 12:05 AM

    PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

    在PHPStorm中如何進行CLI模式的調試? 在PHPStorm中如何進行CLI模式的調試? Apr 01, 2025 pm 02:57 PM

    在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

    如何在系統重啟後自動設置unixsocket的權限? 如何在系統重啟後自動設置unixsocket的權限? Mar 31, 2025 pm 11:54 PM

    如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

    如何用PHP的cURL庫發送包含JSON數據的POST請求? 如何用PHP的cURL庫發送包含JSON數據的POST請求? Apr 01, 2025 pm 03:12 PM

    使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...

    See all articles