2013-09-05 23 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