我想自动将一些文字发布到我的应用程序Twitter帐户。我为此创建一个帐户并获取所有需要的信息并为其编写一个PHP代码。这是简单的代码: 我只是为了测试帖子的能力:
<?php
require_once 'oauth/twitteroauth.php';
$message = "hiiiiiii"; #actual message to twitter
define("CONSUMER_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
define("CONSUMER_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
define("OAUTH_TOKEN", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
define("OAUTH_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);
print_r($connection);
$content = $connection->get('account/verify_credentials');
//print_r($content);
$connection->post('statuses/update', array('status' => $message));
?>
我从帐户中获取信息,所以我认为连接正常,但为什么我不能发布任何内容?我试图发布此消息,但执行此代码后,我的Twitter上没有任何新的推文显示????
$ connection-&gt; post是一种方法:
/**
* POST wrapper for oAuthRequest.
*/
function post($url, $parameters = array()) {
$response = $this->oAuthRequest($url, 'POST', $parameters);
if ($this->format === 'json' && $this->decode_json) {
return json_decode($response);
}
return $response;
}
答案 0 :(得分:0)
如果您能够使用这些凭据从帐户接收信息,我的第一个停靠点就是您的应用已阅读 AND 写入(发布)权限:
转到dev.twitter.com/apps。选择您的应用,然后选择“设置” - &gt; '应用类型'你会找到你需要的东西。
虽然这不起作用,但无论您在代码中通过此应用程序发布到您的帐户中的内容都无效,因为该功能超出了您自己设置的权限。所以现在我们知道你可以发布:
更改
$connection->post('statuses/update', array('status' => $message));
到
$result = $connection->post('statuses/update', array('status' => $message));
然后看看$ result的值是多少。这可能会提供一些线索
好的,所以响应告诉你,你仍然没有权限,你需要重新生成令牌并访问凭据,然后用它们更新你的代码:
define("CONSUMER_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
define("CONSUMER_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
define("OAUTH_TOKEN", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
define("OAUTH_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
这些凭据仍然附加了以前的权限,当您请求新令牌时,它将引用新权限并允许您发布。