Python Linkedin API OAuth2 HTTP错误401:未经授权

时间:2013-09-10 08:21:58

标签: python authentication oauth-2.0 linkedin

我试图代表用户在Linkedin上分享帖子。 我让用户通过身份验证过程来生成oauth2令牌。我有令牌,但现在我被困住了如何使用它。我在互联网上找到的所有帮助都是关于Oauth而不是Oauth2。我正在尝试发送请求,但我收到HTTP错误401:未经授权。以下是我的代码......

import urllib2, cookielib
cookie_jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
urllib2.install_opener(opener)

xml_request = ..... XML

headers={'Content-Type': 'application/xml'}
url = "http://api.linkedin.com/v1/people/~/shares/?oauth2_access_token=XXXX"
req = urllib2.Request(url, data=xml_request, headers = headers)
rsp = opener.open(req)
content = rsp.read()

我已经检查过并且令牌有效我正在使用相同的令牌获取网络更新...我已搜索并搜索但仍然没有帮助Oauth2。我在使用Oauth而不是Oauth2时看到的所有Linkedin客户端.. 请帮我解决如何发送此请求。 如果有人知道任何使用oauth2的api或客户请告诉我.. 在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我在下面编写了使用OAuth 2.0在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

我希望这段代码可以帮助任何人。 此致