我正在构建一个允许通过Linkedin登录的应用程序。我没有使用linkedin api .. 所以我做的是让用户通过身份验证过程,最后生成一个身份验证令牌(OAuth2).... 使用此令牌,我获取其更新和连接详细信息...使用urlib
url = "https://api.linkedin.com/v1/people/~/network/updates?type=SHAR&count=50&start=50&oauth2_access_token=XXXX"
lp = urllib2.urlopen(url)
现在我需要做的是使用此令牌在用户墙上共享。我登录用户时已经有rw_nus访问权限了... 在文档中提到使用链接“http://api.linkedin.com/v1/people/~/shares”但我对如何使用令牌发送此URL上的JSON共享内容感到有点困惑...我正在做如下
share_object = {
"comment":"comment_text",
"content": {
"title":"Test",
"submitted_url":"http://www.test.com/",
},
"visibility": {
"code": "anyone"
}
}
api_url = "http://api.linkedin.com/v1/people/~/shares?oauth2_access_token=XXXX";
data = json.dumps(share_object)
req = urllib2.Request(api_url, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
response = f.read()
f.close()
在行中提出此错误:f = urllib2.urlopen(req)
urllib2.HTTPError: HTTP Error 401: Unauthorized
答案 0 :(得分:0)
我在下面写了使用OAuth2在Linkedin上分享内容的功能
import requests
import json
def make_request(method, url, token ,data=None, params=None, headers=None, timeout=60):
headers = {'x-li-format': 'json', 'Content-Type': 'application/json'}
params = {}
kw = dict(data=data, params=params, headers=headers, timeout=timeout)
params.update({'oauth2_access_token': token})
return requests.request(method.upper(), url, **kw)
def submit_share(comment, title, description, submitted_url, submitted_image_url, token):
post = {
'comment': comment,
'content': {
'title': title,
'submitted-url': submitted_url,
'submitted-image-url': submitted_image_url,
'description': description
},
'visibility': {
'code': 'anyone'
}
}
url = 'https://api.linkedin.com/v1/people/~/shares'
try:
response = make_request('POST', url, token,data=json.dumps(post))
response = response.json()
return response
except Exception:
return False
我希望它对某人有所帮助。 此致