如何使用tripit API制作独立工具?
我正在尝试制作一个简单的命令行应用程序,用来查询tripit,以获取我的旅行历史数据。不过,我在设置oauth的时候似乎遇到了一些问题,但我不太清楚自己哪里出错了。
我已经注册了一个应用程序,并获得了一个API密钥和一个密钥。我把这些信息存储在creds.py
文件里,分别命名为OAUTH_KEY
和OAUTH_SECRET
。接着,我进行了初步的交换,得到了一个令牌和一个密钥,我把它们存储为OAUTH_TOKEN
和OAUTH_TOKEN_SECRET
。然后我尝试运行以下程序:
#!/usr/bin/env python
import sys
import time
import oauth2 as oauth
import creds
if __name__ == '__main__':
url = 'https://api.tripit.com/v1/list/trip/format/json'
params = {
'oauth_version': "1.0",
'oauth_nonce': oauth.generate_nonce(),
'oauth_timestamp': int(time.time())
}
token = oauth.Token(key=creds.OAUTH_TOKEN, secret=creds.OAUTH_TOKEN_SECRET)
consumer = oauth.Consumer(key=creds.OAUTH_KEY, secret=creds.OAUTH_SECRET)
params['oauth_token'] = token.key
params['oauth_consumer_key'] = consumer.key
req = oauth.Request(method="GET", url=url, parameters=params)
print req.to_url()
signature_method = oauth.SignatureMethod_HMAC_SHA1()
req.sign_request(signature_method, consumer, token)
client = oauth.Client(consumer)
resp, content = client.request(req.to_url(), "GET")
print resp
print content
但是它报了一个错:
{'status': '401', 'transfer-encoding': 'chunked',
'server': 'nginx', 'connection': 'keep-alive',
'date': 'Mon, 04 Jul 2011 00:13:15 GMT',
'content-type': 'application/json'}
{"Error":{"code":401,"detailed_error_code":106.1,
"description":"invalid token key: fc0e332517d03a515bf6fca5e3144e022c5f0076"}}
(其中fc0e332517d03a515bf6fca5e3144e022c5f0076
是我在认证步骤中得到的OAUTH_TOKEN
)
有没有人成功使用过这个服务,知道我哪里出错了吗?也许我在oauth的设置上做错了什么。
1 个回答
0
试试用 "?format=json" 这个方式,而不是 "/format/json"。我之前见过这样用过,虽然我自己没用过 JSON 接口。