3

我正在构建一个通过以下方式使用 twitter 的网络应用程序:

1) 用户可以使用 Twitter 登录(即用户对应用程序进行身份验证和授权) - 我得到以下内容:“oauth_token_secret=[OAUTH_TOKEN_SECRET_HERE]&oauth_token=[OAUTH_TOKEN_HERE]”,我将其存储到服务器。

2)现在我想只使用javascript(使用jQuery)在客户端访问用户数据。那我该怎么办???我尝试了几种方法,但我一直错过一些东西,所以我的问题是应该如何拨打电话?示例中需要哪些参数:

$.getJSON('https://api.twitter.com/1/statuses/home_timeline.json?include_entities=true&[WHAT PARAMETERS SHOLD BE ADDED HERE???]&callback=?', function(data) {
    console.log(data);
    });
4

2 回答 2

3

您可以使用countamdmax_id查询参数,但不需要它们。

我也不认为你需要或想要这个callback=?部分。

关键是:您需要使用这些 OAUTH 项来生成 Authorization 标头,您必须将其添加到出站请求中。标头的结构在Twitter 的开发人员文档中进行了描述。

要查看消息的外观,请访问:https ://apigee.com/console/twitter

这是一个有效请求的示例:

GET /1/statuses/home_timeline.json HTTP/1.1
Authorization: XXXXXXXXX
Host: api.twitter.com
User-Agent: Mozilla/5.0 (.....)

...其中 XXXXXX 是 Authorization 标头,根据 Twitter 规定的 oauth 1.0a 规则生成。

它看起来像这样:(插入换行符以提高可读性;此标头应在实际请求中全部位于一行)

OAuth oauth_consumer_key="RR0sePOBbQ8bYdC8r41mg",
  oauth_signature_method="HMAC-SHA1",
  oauth_timestamp="1341705465",
  oauth_nonce="34350",
  oauth_version="1.0",
  oauth_token="5915213-haTzPfWcr6Ci2gdnD8797AfgRs8AICDK8KIStFtx",
  oauth_signature="1hxDP104ZXGMlcblQ05h6vWoJg%3D"

您可能希望利用 Javascript OAuth 库来构造该标头并发送请求。

尝试搜索 jsOAuth 和 Twitter

于 2012-07-07T23:31:22.697 回答
0

很抱歉没有给出 1 行答案,但很乐意提供帮助..

通常,在使用 javascript 获取数据时,由于沙盒/“同源”限制,您将无法访问许多数据源。

但是,站点可以批准此功能,但通常会采用特定方式让您访问数据(通常通过先登录并接收会话)

许多人已经围绕这些方法编写了包装器(尤其是对于像 twitter 这样流行的东西)

看看 jsOath https://github.com/bytespider/jsOAuth/downloads

于 2012-07-07T23:38:06.997 回答