使用 Django 和 Javascript 访问 Twitter
Accessing Twitter with Django and Javascript
这是我之前在这里发布的问题的后续。
基本上,我一直在尝试实现一种通过javascript向twitter oauth资源发送请求的方法。我有一个运行Django应用程序的服务器,它使用Django-social-auth将用户注册到Tiwtter。获得授权后,我会获得用户access_token和oauth_token_secret。
在客户端,我有一个javascript应用程序,它调用我的服务器来计算适当的标头,我通过使用python oauth2来完成。执行此操作的代码段如下:
url = request.POST['url']
params = {
'oauth_version': "1.0",
'oauth_nonce': oauth.generate_nonce(),
'oauth_timestamp': int(time.time()),
}
at = social.extra_data['access_token'].split('&oauth_token=')[1]
ats = social.extra_data['access_token'].split('&oauth_token=')[0].split('oauth_token_secret=')[1]
token = oauth.Token(key=at, secret=ats)
consumer = oauth.Consumer(key=settings.TWITTER_CONSUMER_KEY, secret=settings.TWITTER_CONSUMER_SECRET)
params['oauth_token'] = token.key
params['oauth_consumer_key'] = consumer.key
req = oauth.Request(method="GET", url=url, parameters=params)
signature_method = oauth.SignatureMethod_HMAC_SHA1()
req.sign_request(signature_method, consumer, token)
然后将此请求参数发送到客户端,该客户端使用以下参数调用 Twitter:
$.ajax({
url: "https://api.twitter.com/1/statuses/home_timeline.json",
data: parameters,
dataType: 'jsonp',
success: function(twitter_data) {
console.log('twitter_data = ', twdata);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('err = ', textStatus);
console.log('err = ', errorThrown);
}
});
这将生成对资源的请求,例如:
https://api.twitter.com/1/statuses/home_timeline.json?callback=jQuery17107030615725088865_1341786299930&oauth_nonce=15094349&oauth_timestamp=1341785696&oauth_consumer_key=[OAUTH_CONSUMER_KEY HERE]&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=[OAUTH_TOKEN HERE]0&oauth_signature=pQwHlKmepgtym%2Ffj%2BupCGP8mv3s%3D&page=2&include_entities=true&_=1341786306712
我仍然收到 401 未经授权的错误。我检查了三次代码,所以我想知道我是否遗漏了什么???
谢谢。
对于需要身份验证的请求,您必须将身份验证参数放在名为 Authorization
的 HTTP 标头中,而不是放在 POST 参数中。在推特API文档中有解释: https://dev.twitter.com/docs/auth/authorizing-request。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- JavaScript Pub/Sub属性访问问题
- 通过javascript/html访问twitter共享iframe
- 使用Javascript获取Twitter访问令牌
- 通过Javascript访问Twitter
- 使用 Django 和 Javascript 访问 Twitter
- 如何在Windows 8 JavaScript(Metro)中将twitter oAuth请求令牌转换为访问令牌
- 访问 Twitter API - 身份验证和骨干模型
- 如何使 Twitter Bootstrap 工具提示可访问
- 仅使用 JQuery 访问 Twitter API
- Twitter引导程序旋转木马-访问当前索引
- Firebase简单登录和Twitter API访问
- 将twitter api1.0迁移到1.1 json数据访问问题
- 为什么javascript不能在通过iOS Twitter浏览器访问的网页上执行?
- 使用AngularJS和Twitter Streaming API访问JSON数据
- Facebook和twitter的iframe请求访问集'错误