我正在尝试制作一个 PHP 脚本,它可以发布到新浪微博上的群组,这是一个中文 Twitter 克隆。除了群组功能之外,微博在实现上(甚至在 API 中)似乎与 Twitter 几乎相同——因此我提到 Twitter 作为类比,因为区别与我的问题无关。
我可以通过 API 定期发帖,但问题是,微博的 API 不支持发帖到群组,大概是由于可能带来的潜在垃圾邮件危害。(注意:我的目的不是向数百万垃圾发送垃圾邮件,而是要获得一个脚本,以每天自动将专利到期信息发布给相关行业团体。)
现在,我知道应该有一个变通办法,因为有一个应用程序允许一个人手动发布到群组(新浪微自动群发精灵),尽管来源是私人的。因此,我尝试使用 Firebug 检查发送到服务器的表单数据,以查看是否可以通过手动使 PHP 脚本复制表单信息来替换 API 推文命令,但无济于事。
这是我在建立 OAuth 连接后调用的 callback.php 文件的代码。发布更新的有效 API 方法已被注释掉,以支持功能失调的发布表单方法(在 HTML 标记中)。
<?php
session_start();
include_once( 'config.php' );
include_once( 'saetv2.ex.class.php' );
$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );
if (isset($_REQUEST['code'])) {
$keys = array();
$keys['code'] = $_REQUEST['code'];
$keys['redirect_uri'] = WB_CALLBACK_URL;
try { $token = $o->getAccessToken( 'code', $keys ) ; } catch (OAuthException $e) {}
}
if ($token) {
$_SESSION['token'] = $token;
setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );
?><html><head></head><body>
<form action="http://www.weibo.com/aj/mblog/add?__rnd=1340066897833" method="post">
<input type="hidden" name="_surl" value="">
<input type="hidden" name="_t" value=0>
<input type="hidden" name="location" value="home">
<input type="hidden" name="module" value="stissue">
<input type="hidden" name="pic_id" value="">
<input type="hidden" name="rank" value="">
<input type="text" name="text" value="测试发表微博 test message" />
<input type="submit">
</form></body></html><?
/*
$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
$msg = $c->update("测试发表微博 test message");
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']." : ".$msg['text']." ".$msg["created_at"]);
*/
} else echo('授权失败。 authentication failed');
?>
我对这一切都很陌生,所以我可能遗漏了一些明显的东西,但是这里有没有人足够了解 Twitter/Weibo 来找到这里的问题?也许会有一个简单的解决方法?谢谢!