php - 为什么我不能更新我们的 Twitter 状态?

标签 php zend-framework twitter oauth

在过去的三个小时里,我一直在尝试使用 Zend_Service_TwitterZend_Oauth_Token_Access 进行简单的 Twitter 状态更新。令人气愤的是,我不断收到以下回复:

object(Zend_Rest_Client_Result)#34 (2) {
  ["_sxml:protected"]=>
  object(SimpleXMLElement)#39 (2) {
    ["request"]=>
    string(33) "/1/account/verify_credentials.xml"
    ["error"]=>
    string(20) "Invalid / used nonce"
  }
  ["_errstr:protected"]=>
  NULL
}

这是我试过的代码:

$token = new Zend_Oauth_Token_Access();
$token->setToken('my token');
$token->setTokenSecret('my token secret');

$params = array('accessToken' => $token,
                'consumerKey' => 'my key',
                'consumerSecret' => 'my secret'
               );
$twitter = new Zend_Service_Twitter($params);

$response = $twitter->statusUpdate('simpletest');

究竟什么是“nonce”?如果我弄乱了 token / token secret ,响应中的错误消息会相应更改。但是,使用正确的凭据,我保持得到上面的随机数(双关语意)。此外,我尝试了几种替代方案,例如 this previous post on SO 中的替代方案。 .

如有任何帮助,我们将不胜感激!

更新:

如果它有帮助或使事情变得更容易,我正在尝试做的就是更新单个 Twitter 帐户的状态,即应用程序的 Twitter 帐户。正如我在@David Caunt 的回答下方评论的那样,每当“项目”发布到我们的网站时,该网站的 Twitter 状态将更新为对该项目的简要描述以及一个链接。就这样!在 oAuth 成为强制执行 API 调用之前,这曾经有效(所有需要的是实例化一个 Zend_Service_Twitter 并传入我们的凭据)。

最佳答案

查阅引用手册,我认为您的错误在于创建 Zend_Service_Twitter 对象。

$twitter = new Zend_Service_Twitter(array(
    'username' => 'johndoe',
    'accessToken' => $token
));
$response   = $twitter->status->update('My Great Tweet');

您不需要再次传递 key 和 secret ,因为它们包含在用于签署请求的访问 token 中。

另请参阅我上面解释随机数的评论。

更新:

我已经在最小环境中尝试了代码,您是对的,它根本行不通。

您可以在 GitHub gist 中看到我的所有代码.它有意最小化,避免了 MVC 和其他并发症。

您可能会对从访问 token 返回的 Zend_Http_Client 确实有效这一事实感到欣慰。

关于php - 为什么我不能更新我们的 Twitter 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3908237/

相关文章:

java - 使用 google oauth java 客户端库在 Google App Engine 中实现 Twitter OAuth

php - MySQL 查询不关心用户输入之一

php - 表名作为模型 Codeigniter 中的变量

php - MailChimp API PHP - 添加到兴趣组

windows - Zend Framework 在 WAMP 上的性能非常糟糕

zend-framework - Zend_Application_Module_Autoloader 和 Zend_Loader_Autoloader_Resource 有什么区别?

php - 如果 PHP 包含,则突出显示当前菜单项

php - 如何在 PHP 和 Zend 中使用 Facebook Connect 注销用户?

hadoop - pig :给推文增值

java - 无法获取请求 token 方法 POST 必须具有请求正文