前置條件
- 已完成 OAuth 授權,獲取用戶的
oauth_token 與 oauth_token_secret,存入 Session。
- 引入
WeiboClient 類(官方 SDK 或自行封裝)。
發布微博代碼
$c = new WeiboClient(
WB_AKEY, // App Key
WB_SKEY, // App Secret
$_SESSION['last_key']['oauth_token'],
$_SESSION['last_key']['oauth_token_secret']
);
$msg = $c->update("測試發表微博");
if ($msg === false || $msg === null) {
echo "Error occured"; return false;
}
if (isset($msg['error_code']) && isset($msg['error'])) {
echo 'Error_code: ' . $msg['error_code'] . '; Error: ' . $msg['error'];
return false;
}
echo $msg['id'] . " : " . iconv('UTF-8', 'GB2312', $msg['text']) . " - " . $msg["created_at"];
關鍵點
update 方法對應 statuses/update 接口,參數為微博文本(需 URL 編碼,SDK 內部處理)。
- 返回結構包含
id、text、created_at 等字段。
- 錯誤碼
error_code 非 0 表示失敗,常見:21332(重複內容)、10001(Token 過期)。
- 編碼轉換:微博返回 UTF-8,若頁面為 GB2312 需
iconv。
完整流程回顧
- 引導用戶授權 → 獲取
code。
- 用
code 換取 access_token(含 oauth_token/oauth_token_secret)。
- 將 Token 存入資料庫/Session,關聯用戶賬號。
- 發布時實例化 Client 並調用接口。