前言,我对PHP知之甚少。但是,我不确定这是一个PHP问题,但可能更多的是我理解连接到Twitter的库。
我按照这里的教程http://140dev.com/twitter-api-programming-tutorials/hello-twitter-oauth-php/使用了Matt Harris的推特库。除了我从twitter获得的钥匙外,我没有改变任何东西。
当我运行以下代码时,我收到了未经授权的错误代码401:
$tweet_text = 'Hello Twitter';
print "Posting...\n";
$result = post_tweet($tweet_text);
print "Response code: " . $result . "\n";
function post_tweet($tweet_text) {
require_once('tmhoauth/tmhOAuth.php');
$connection = new tmhOAuth(array(
'consumer_key' => '******',
'consumer_secret' => '******',
'user_token' => '******',
'user_secret' => '******',
));
// Make the API call
$connection->request('POST',
$connection->url('1/statuses/update'),
array('status' => $tweet_text));
return $connection->response['code'];
}
?>
正如我之前所说,我使用的是Twitter提供的密钥。
我可以帮助我尝试使用上面的库在https://api.twitter.com/1/account/verify_credentials.json测试twitter credientail验证器吗?
我还尝试使用以下示例与此SO帖子Using basic oauth to send a tweet中的TwitterOAuth库:
<?php
require_once('twitteroauth.php');
$connection = new TwitterOAuth('app consumer key', 'app consumer secret', 'my access token', 'my access token secret');
$connection->post('statuses/update', array('status' => 'text to be tweeted'));
它不起作用;但它确实将页面转发给了作者的github页面!?!?
感谢您提供的任何帮助!
答案 0 :(得分:2)
如果你确定键是正确的,我建议你检查一下twitter中的应用程序设置,以确保启用写入模式。
在应用程序设置下,确保将应用程序类型访问权限设置为
读取,写入和访问直接消息
(或至少是读/写)
然后尝试再次生成访问令牌?