0

我对 Python 比较陌生(和一般的代码!),但我已经成功地使用 LinkedIn 的 People Search API 来获取我的一些第二个连接的具体细节。

我现在正试图了解如何通过 Invitation API 邀请这些连接,但我正在苦苦挣扎。文档在这里

我已经从人物搜索中获得了必要的详细信息,例如“名称”和“值”,但现在无法弄清楚如何使用 json 和 urllib2 进行 POST。这是我到达的地方,它返回 HTTP 错误 400:错误请求。

我敢肯定我错过了一些完全明显的东西——这就是从头开始自学的乐趣……

import json
import urllib2

opener = urllib2.build_opener()

data = json.dumps({"recipients": {"values": [{"person": {"_path": "/people/" + id}}]},"subject": "Invitation to connect.","body": "add me","item-content":{"invitation-request":{"connect-type":"friend", "authorization":{"name": "x-li-auth-token", "value": "abc1"}}}})
req = urllib2.Request('https://api.linkedin.com/v1/people/~/mailbox?format=json&oauth2_access_token=' + access_token, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
response = f.read()
f.close()
4

1 回答 1

1

如果我是你,我会非常想念 urllib2 并直接转到Requests(文档在此处)。我保证你不会后悔;我认为在导入之后您可以将代码行数减半。

我最近切换并且没有回头,有太多不喜欢一个模块,它让一切变得显而易见并包含原生 JSON 支持。我没有包含工作代码片段的唯一原因是我根本没有玩过 LinkedIn API。因此,我编写的唯一请求代码是用于查找 URL 转发、访问 SMS 网关和访问另一个 HTTP-Post API。其他人已经使用它编写了 Twitter 代码。

无论如何,如果没有真正的代码示例,使用 Requests 您将摆脱开瓶器行,将数据格式更改为类似这样,更改 req 行以匹配 API URL 的先前文档(例如 r = requests.get( )) 并且不再需要将响应作为文件打开并读取它,因为 r.text、r.json 和 r.content 将可用。

于 2013-09-29T01:06:00.917 回答