0

我想我错过了什么,需要有人打我的头。

import sys
import tweepy
import urllib
import simplejson
from pprint import pprint

CONSUMER_KEY = '----'
CONSUMER_SECRET = '----'
ACCESS_KEY = '----'
ACCESS_SECRET = '----'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

rate = api.rate_limit_status()
print rate["remaining_hits"]

print api.me().name

search = urllib.urlopen("https://api.twitter.com/1.1/search/tweets.json?q=+arsenal&page=1")

dict = simplejson.loads(search.read())

pprint(dict)

OAuth 有效,我可以使用 tweepy API 返回我的 rate_limit_status 并打印我的名字。然后我想使用搜索 API v1.1(tweepy 的 api.search() - 实现没有 OAuth 的旧搜索)并得到一个“错误的身份验证数据”错误。

我认为我对 OAuth 的理解是非常不正确的——我假设一旦获得访问令牌,我就可以进行授权调用。通过运行上面的代码,我认为那是错误的 - 有人可以帮我使用 OAuth 执行 API1.1 搜索 - 我需要随请求一起发送什么?

谢谢!

4

1 回答 1

0

您无需使用 OAuth 进行 Twitter 搜索。打电话

search = urllib.urlopen("https://search.twitter.com/search.json?q=+arsenal&page=1")

顺便说一句,当您调用 Twitter API 时,urllib.urlopen您没有传递任何 OAuth 凭据,因此如果端点需要身份验证,您将收到错误消息。如果您查看 Tweepy 的源代码,它必须发送 Twitter 每次调用所需的凭据。

于 2012-12-31T06:15:55.753 回答