2012-07-13 53 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