我正在尝试查询FourSquare API以获取用户特定信息和以场地为中心的信息。我已经成功地获得了以场地为中心的数据,但是我对用户中心信息一无所知。我试过跟this link。
但是request_token url什么都不返回。 :(。
如果有人能指出,那就太好了
1)我可能出错了。
2)另外,如果我的方法完全错误,建议正确的方法。
编辑 - 以下是代码段
中的一些修改后的代码 <!-- language: python -->
### GET A REQUEST TOKEN ###
consumer=oauth.Consumer(key="NN3TBSPRBCVJMWCDPN1WELO1LOQLXAA31Q40WHW2L1BI5L1X", secret="RVMP1GUQCMFLX31ME5DJKKMZDZFBNYYVV5BKGVXZNWN2MDVM")
request_token_url = 'http://foursquare.com/oauth/request_token'
client = oauth.Client(consumer)
resp, content = client.request(request_token_url, "GET")
request_token = dict(urlparse.parse_qsl(content))
print 'Request tokens are',request_token.keys()
token = oauth.Token(request_token['oauth_token'], request_token['oauth_token_secret'])
### CREATE A SIGNED CONSUMER REQUEST ###
# Set the API endpoint
url = "http://api.foursquare.com/v1/authexchange"
# Set the base oauth_* parameters along with any other parameters required
# for the API call.
params = {
'oauth_version': "1.0",
'oauth_nonce': oauth.generate_nonce(),
'oauth_timestamp': int(time.time()),
'fs_username': 'MyFourSquare Username',
'fs_password': 'MyFourSquarePassword',
'oauth_token': request_token['oauth_token'],
'oauth_consumer_key': consumer.key,
}
req = oauth.Request(method="GET", url=url, parameters=params)
# Sign the request.
signature_method = oauth.SignatureMethod_HMAC_SHA1()
req.sign_request(signature_method, consumer, token)
### Make the auth request ###
test = 'http://api.foursquare.com/v1/test.json'
resp, content = client.request(test, "GET")
print resp
print content # prints 'ok'
运行代码时出现以下错误。
Request tokens are []
Traceback (most recent call last):
File "testingFour.py", line 60, in <module>
token = oauth.Token(request_token['oauth_token'], request_token['oauth_token_secret'])
KeyError: 'oauth_token'
从我可以得出的请求令牌被归还为空,任何想法为什么会发生这种情况?
----------------------------------- SECOND - EDIT:------- -------------------------------------------------- -----------------
这是我尝试打印resp内容时出现的错误。我知道我正在调用错误的网址,但显然用ouath2代替oauth并没有帮助
{'status': '400', 'content-length': '91', 'expires': 'Thu, 15 Sep 2011 12:04:57 UTC', 'server': 'nginx/0.8.52', 'connection': 'keep-alive', 'pragma': 'no-cache', 'cache-control': 'no-cache, private, no-store', 'date': 'Thu, 15 Sep 2011 12:04:57 GMT', 'content-type': 'text/plain; charset=utf-8'} AS PART OF THE APIV1 SUNSET, OAUTH V1 HAS BEEN DIABLED. SEE HTTP://DEVELOPER.FOURSQUARE.COM
Request tokens are []
Traceback (most recent call last):
File "testingFour.py", line 60, in <module>
token = oauth.Token(request_token['oauth_token'], request_token['oauth_token_secret'])
KeyError: 'oauth_token'
感谢您的时间!
答案 0 :(得分:2)
您正在尝试连接到FourSquare API v1 。但是现在这已经被禁用了:
AS PART OF THE APIV1 SUNSET, OAUTH V1 HAS BEEN DIABLED. SEE HTTP://DEVELOPER.FOURSQUARE.COM
显然你正在使用的例子已经过时了。
答案 1 :(得分:1)
正如平台所提到的,foursquare的V1库已被弃用并关闭。
foursquare的V2 api文档在这里:https://developer.foursquare.com/docs/
可在此处找到全面的foursquare Python库:https://github.com/mLewisLogic/foursquare
Pythonic,简单,完整的单元测试。 免责声明:我写了库