【问题标题】:Writing library for Twitter, where am I going wrong?为 Twitter 编写库,我哪里出错了?
【发布时间】:2013-08-17 01:07:48
【问题描述】:

我正在编写一个库来连接到使用 Requests for PHP 的 Twitter。我不确定,但我认为我没有正确构建 OAuth,因为我无法进行身份验证。我已经仔细检查了它,并对照另一个现有的库进行了检查,但似乎仍然无法正确。

代码是here

这个想法是你实例化服务,向它发送配置参数,然后在它发出请求之前,它会生成 'Authorization: OAuth xxx' 标头并将其添加到所述请求中。

$twitter = array(
    'consumer_key'        => '',
    'consumer_secret'     => '',
    'access_token'        => '',
    'access_token_secret' => '',
    'screen_name'         => '_hassankhan',
    'api_url'             => 'https://api.twitter.com/1.1/'
);

$service = new OAuth1AService('Twitter', $twitter['api_url']);
$service->config($twitter);
$service->doGet(
    'statuses/user_timeline.json',
    array(
        'screen_name'      => '_hassankhan',
        'include_entities' => 'true'
    ),
    array(),
    'raw'
);
print($service->getResult());

【问题讨论】:

  • 还有任何错误消息,您是否在他们的平台上创建了一个 twitter 应用程序并获得了 api 调用的密钥?
  • 是的,很明显,我已经创建了一个 Twitter 应用程序。我从 Twitter 的服务器收到的响应是响应代码是 401,消息是 {"errors":[{"message":"Could not authenticate you","code":32}]}

标签: php api twitter oauth twitter-oauth


【解决方案1】:

我真的建议您使用已经制作的库之一,例如 tmhOAuth,它可以非常轻松地与 twitter api 交互。


至于您的问题,您似乎没有正确签署您的请求。至少我无法轻易找出您是否包含所有请求参数来创建签名。

oauth_signature 参数包含一个由生成的值 运行所有其他请求参数和两个秘密值 通过签名算法。

此文档中描述了创建签名:https://dev.twitter.com/docs/auth/creating-signature

【讨论】:

    猜你喜欢
    • 2012-08-17
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2011-03-14
    • 2013-12-25
    • 2016-09-18
    • 1970-01-01
    相关资源
    最近更新 更多