PHP調用新浪微博開放平台api發送微博實例


首先要解釋一下,寫的這個標題實際上是不准確的。准確的標題應該是,使用新浪SAE(Sina App Engine, http://sae.sina.com.cn )內置PHP的SDK來發送一條微博。這與直接使用開放平台api有什么區別呢?其實說到底就是這個SDK已經將平台的api封裝好了,使開發者調用起來更加方便,比如開發平台api發布一條微博的接口是“statuses/update 發布一條微博信息”,發送的形式還是有點別扭,而在SDK中可以用封裝好的SaeTClient類的update()方法。弄了很久才覺察出這兩個概念的區別,開始時一直混淆了這兩種不同開發情況的資料。
好了下面來解釋一下大體的步驟(假設讀者已經是新浪微博的用戶了,如果不是,請先注冊):

step1:在 http://open.weibo.com/創建應用
(1)點選我是開發者
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
(2)點選創建應用,然后在彈出框里選擇站內應用
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
(3)填寫應用的一些信息,域名綁定選擇否,其他根據自己的情況填寫。
(4)填寫完成后,系統就會顯示應用的匯總信息,其中App Key,和App Secret很重要,可以說就是你這個應用的標識,開發時需要用這個標識。第一步到此就完成了。
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
 
 

 step2:在SAE(Sina App Engine)http://sae.sina.com.cn/創建應用。(這上面創建應用實際就意味着,將我們開發的應用放在SAE上運行,而不需要自己去架設服務器,同時由於這上面集成了新浪開放平台PHP版的SDK,所以開發起來也比較方便。)(這一步由於我現在已經注冊過了,可能步驟有一些缺失,但是關鍵的都在下面)

(1)注冊SAE帳號
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
(2)創建新應用。需要說明一下,這個二級域名其實就是訪問你應用的地址,注意創建后是不能修改的。創建后好像還需要設置安全密碼,安全密碼在你編輯代碼的時候需要用,所以,一定不要忘了哦。
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
 創建應用成功后點擊如下的超鏈接,就可進入應用的匯總信息
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
 應用匯總信息:這里有access key 和 secret key ,暫時用不到,還不清楚有什么用。
 
  PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
(3)創建應用的代碼。也就是准備開始敲代碼了在上圖左邊導航欄,點擊代碼管理,然后點擊“通過這里創建一個版本”,在彈出框中輸入版本號1.
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
 

(4) 編輯代碼。創建成功后顯示如下,點擊編輯代碼

PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
顯示如下,現在可以自己通過左上角的兩個按鈕新建文件和文件夾了。
  PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
至於代碼部分,我主要是參考下面的博客 http://www.html-js.com/?p=1163,特別是關於身份認證,說得比較詳細,我就不累述了。我在他的源碼基礎上做了一些小修改,以便能正常運行。下面是我的運行代碼:
 
 
getRequestToken.php
<?php
session_start();
include ('saet.ex.class.php');
$auth=new SaeTOAuth("這里替換成你的App Key","這里替換成你的app secret");//your app key and app secret
//這一步是去sina服務器請求request token
$token=$auth->getRequestToken();
//這一步是用request token拼裝認證的url,第三個參數是獲得用戶認證許可后跳轉到的url。就是我們在SAE注冊應用的二級域名
$url=$auth->getAuthorizeURL($token,true,"這里替換成你SAE應用的二級域名/getAccessToken.php");
$_SESSION['token']=$token['oauth_token'];//記錄下來備用
$_SESSION['token_secret']=$token['oauth_token_secret'];
 
//最后將$url當成一個鏈接輸出到頁面中,用戶點擊了這個鏈接就會跳轉到認證頁面
echo "<a href=$url>welcome,madada!</a>";
?>
 
getAccessToken.php
<?php
session_start();
include ('saet.ex.class.php');
//利用第一步獲得的request token和token secret來初始化SaeTOAuth對象
$auth=new SaeTOAuth("這里替換成你的App Key","這里替換成你的app secret",$_SESSION['token'],$_SESSION['token_secret']);
//去換取真正有用的access token
$accessToken=$auth->getAccessToken($_REQUEST['oauth_verifier'],$_REQUEST['oauth_token']);
//print_r($accessToken);
//存儲起來,后面每次請求都要帶上這兩個值
$_SESSION['token']=$accessToken['oauth_token'];
$_SESSION['token_secret']=$accessToken['oauth_token_secret'];
//接下來你就可以跳轉到你的應用頁面開始微博之旅了,例如輸出一句js,window.location.href="send.php"
//echo "token:".$_SESSION['token'];
//echo "<br/>token_secret:".$_SESSION['token_secret']."<br/>";
echo "<script>window.location.href='send.php'</script>"
?>
 
 
send.php
<?php
session_start();
//include ('saetv2.ex.class.php');
include ('saet.ex.class.php');
$auth = new SaeTClient("這里替換成你的App Key","這里替換成你的app secret", $_SESSION['token'], $_SESSION['token_secret']);
$mes = $_POST[msg];
 $auth->update($mes);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
</head>
<body>
  <form method="POST">
  要發送的微博:<input type="text" name="msg">
        <input type="submit" value="提交">
  </form>
</body>
</html>
 
 至此代碼就完成。
 
 
  step3:在新浪開發平台配置應用。回到step1中,點擊左邊導航欄的編輯屬性,然后點擊右上方的應用頁面進行配置。
站內應用地址就是你要在瀏覽器中輸入的地址,通過這個地址,你就可以訪問到你存放在sae上的應用了(比我們現在的應用是發送一條微博)。而實際應用地址就是你SAE上的那個二級域名。填寫完成后,就大功告成了。
PHP調用新浪微博開放平台api發送微博實例 - 子其 - 子其的博客
 
 
step4:訪問應用:發送一條微博。在瀏覽器中輸入你的站內應用的地址+“/getRequestToken.php”,如 http://apps.weibo.com/你的應用的名稱/getRequestToken.php)不能直接去訪問send.php文件,因為涉及到授權。(如果在同個瀏覽器已經登錄微博,可以直接授權,不然會提示用戶先登錄),然后在輸入框中填寫你要發送的信息,然后點擊提交。打開自己的微博,刷新一下,就能看見自己通過該應用發送的微博了(注意:有時候可能會延遲一兩分鍾才能刷出來)。
 
 
最后一點小心得:可以在http://sae.sina.com.cn/?m=devcenter&catId=13文檔中心查看SDK封裝好的各種方法,調用的形式都大同小異。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM