2013-09-05 25 views
0

我正在构建一个允许通过Linkedin登录的应用程序。我没有使用linkedin api .. 所以我要做的就是让用户通过身份验证过程,并最终生成身份验证令牌(OAuth2).... 使用此令牌我得到它的更新和连接详细信息...使用urlibPython Linkedin,如何在用户的墙上分享内容

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”,但我有点困惑如何发送共享内容是这个网址上的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 
+1

你为什么不使用LinkedIn API客户端? –

+0

如果我有身份验证令牌,那么我将如何使用Linkedin API客户端执行上述共享过程? – planet260

+0

我搜索的所有linkedin客户端都使用Oauth,但我使用Oauth2生成了令牌..我还没有找到任何使用Oauth2的客户端或API ... – planet260

回答

0

我写了下面的功能使用的OAuth2

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 
在LinkedIn分享内容

我希望它有助于某人。 Regards