2012-07-13 50 views
4

我在Asp.net應用程序中實現LinkedIN Share Api時遇到了困難。誰能幫我 ? 我找到了LinkedIN Share APIhttps://developer.linkedin.com/documents/share-api)的文檔。 這是說,我應該共享創建一個XML和閱讀本文件後應張貼此的URL「http://api.linkedin.com/v1/people/~/shares使用Share Api發佈到Linkedin

我有兩個疑惑

  1. 如何將令牌傳遞給服務器連同XML,它在文檔中沒有被告知?
  2. XML內容的名稱/密鑰應該是什麼?

的要求是:我需要共享的更新(「只是一個文本),以帳戶 共享文本鏈接是由用戶通過文本框給予用戶(這樣將只包含文本)。

我使用LinkedIn OAuth Library 0.6.1 For Authentication。因爲我沒有找到任何方法(即有助於發佈)這個庫中,我打算直接使用共享的API,而且投遞到LinkedIn通過使用類「HttpWebRequest

我到目前爲止所做的:

1.Created在鏈接的應用程序,所以我得到的App-Key和應用,重點 2.In爲了驗證,將用戶重定向到在OAuth庫中使用BeginAuthMethod鏈接0.6.1這樣

var token = OAuthManager.Current.CreateToken(callback: this.AppRedirectUrl); 
OAuthManager.Current.BeginAuth (token, endResponse: true, displayAllowDenyScreen: false); 

3 。經過驗證我收到的鏈接的反應和我使用身份驗證令牌來獲取這樣

var token = OAuthManager.Current.GetTokenInCallback(); 
var session = OAuthManager.Current.CompleteAuth(token); 
this.UserToken = token.Token; 
this.UserSecret = token.TokenSecret; 

4,我的usertoken已經創建了一個XML有點像這樣:

<?xml version=\"1.0\" encoding=\"UTF-8\"?> 
<share> 
    <comment>83% of employers will use social media to hire: 78% LinkedIn, 55% Facebook, 45% Twitter [SF Biz Times] http://bit.ly/cCpeOD</comment> 
    <content> 
     <title>Survey: Social networks top hiring tool - San Francisco Business Times</title> 
    </content> 
    <visibility> 
     <code>anyone</code> 
    </visibility> 
</share> 

5.So現在我有在App-鍵,應用程序與祕密,用戶令牌和用戶祕密,和我有XML和URL後(即http://api.linkedin.com/v1/people/~/shares

如何這個XML發佈到url使用令牌?任何人都可以提供關於此的一些/任何信息嗎?

我在java中也遇到了一個例子。鏈接是「https://developer.linkedin.com/documents/writing-linkedin-apis」。但我需要這個在.NET中

+0

我提出使用LinkedIn REST的控制檯後,請參閱請求生成 'POST/V1 /人/〜/股HTTP/1.1 授權: 的OAuth oauth_consumer_key = 「w_1233373R-J97_wH3_131231kL9netWMe90_OM1233gQzip-ssCmwKWyJU」,oauth_signature_method =「HMAC- SHA1「,oauth_timestamp =」11233865「,oauth_nonce =」20「,oauth_version =」1.0「,oauth_token =」5f3c5cf2-e661-41bd-1230-274312361「,oauth_signature =」Fdw6%2BJh2133123brPeZGY%3D「 主機: api。 LinkedIn。COM 的Content-Length: X - 轉發,對於: 10.203.10.109 X-目標-URI: http://api.linkedin.com 內容類型: 應用/ XML 連接: 保持-Alive [這裏來XML]' – shajivk 2012-07-13 05:53:36

+0

在上面的要求也有很多鍵 '其中有些人我這裏有他們 的OAuth oauth_consumer_key = [APP鍵],組oauth_token = [Auth_tokn]' 但是'我沒有其他一些鑰匙,如:oauth_signature,oauth_nonce' **我怎樣才能生成這些鑰匙?** – shajivk 2012-07-13 06:02:06

回答

4

使用此方法發佈到LinkedIn共享。該方法假定您有accesstoken方便。

private string linkedinSharesEndPoint = "https://api.linkedin.com/v1/people/~/shares?oauth2_access_token={0}"; 
private const string defaultUrl = "some-url"; 
private const string defaultImageUrl = "some-image-url"; 

public bool PostLinkedInNetworkUpdate(string accessToken, string title, string submittedUrl = defaultUrl, string submittedImageUrl = defaultImageUrl) 
{ 
    var requestUrl = String.Format(linkedinSharesEndPoint, accessToken); 
    var message = new 
    { 
     comment = "Testing out the LinkedIn Share API with JSON", 
     content = new Dictionary<string, string> 
     { { "title", title }, 
      { "submitted-url", submittedUrl }, 
      {"submitted-image-url" , submittedImageUrl} 
     }, 
     visibility = new 
     { 
      code = "anyone" 
     } 
    }; 

    var requestJson = new JavaScriptSerializer().Serialize(message); 

    var client = new WebClient(); 
    var requestHeaders = new NameValueCollection 
    { 
     { "Content-Type", "application/json" }, 
     { "x-li-format", "json" } 
    }; 
    client.Headers.Add(requestHeaders); 
    var responseJson = client.UploadString(requestUrl, "POST", requestJson); 
    var response = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(responseJson); 
    return response.ContainsKey("updateKey"); 
} 

請注意,我已經做了submittedUrlsubmittedImageUrl可選。

+0

這是你對可選提交的url的評論,它讓我發現了我的問題的答案。謝謝! +1 – 2013-12-12 16:44:16