【问题标题】:Post to LinkedIn using Share API使用 Share API 发布到 LinkedIn
【发布时间】:2012-07-13 04:53:27
【问题描述】:

我在 Asp.net 应用程序中实现 LinkedIN Share Api 时遇到困难。谁能帮我 ? 我找到了LinkedIN Share API (https://developer.linkedin.com/documents/share-api) 的文档。 据说我应该创建一个 XML 用于共享,并将其发布到 URL“http://api.linkedin.com/v1/people/~/shares

看完这篇文档我有两个疑惑

  1. 如何将令牌与 XML 一起传递给服务器,文档中没有说明?
  2. 所发布的 XML 内容的名称/键应该是什么?

要求是:我需要将更新(“只是文本)分享给帐户中链接的用户。 要分享的文本是用户通过文本框给出的(所以它只会包含文本)

我正在使用LinkedIn OAuth Library 0.6.1 For Authentication。由于我在这个库中没有找到任何方法(有助于发布),我打算直接使用 Share API。并使用“HttpWebRequest”类发布到Linkedin

到目前为止我做了什么:

1.在链接中创建了一个应用程序,所以我得到了 App-Key 和 App-Key 2.为了进行身份验证,使用 OAuth 库 0.6.1 中的 BeginAuthMethod 将用户重定向到链接,如下所示

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.我创建了一个类似这样的 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://example.com</comment>
    <content>
         <title>Survey: Social networks top hiring tool - San Francisco Business Times</title>
    </content>
    <visibility>
        <code>anyone</code>
    </visibility>
</share>

5.所以现在我有了 App-Key、App-Secret、User-Token 和 User-Secret,并且我有了要发布的 xml 和 url(即http://api.linkedin.com/v1/people/~/shares

如何使用令牌将此 xml 发布到 url?任何人都可以提供一些/任何有关此的信息吗?

我在 java 中遇到了一个这样做的例子。链接是“https://developer.linkedin.com/documents/writing-linkedin-apis”。但我在 .NET 中需要这个

【问题讨论】:

  • 我使用 LinkedIn Rest-Console 发了一个帖子,请参阅生成的请求 POST /v1/people/~/shares HTTP/1.1 Authorization: OAuth oauth_consumer_key="w_1233373R-J97_wH3_131231kL9netWMe90_OM1233gQzip-ssCmwKWyJU",oauth_signature_method="HMAC-SHA1",oauth_timestamp="11233865",oauth_nonce="20012339",oauth_version="1.0",oauth_token="5f3c5cf2-e661-41bd-1230-274312361",oauth_signature="Fdw6%2BJh2133123brPeZGY%3D" Host: api.linkedin.com Content-Length: 634 X-Forwarded-For: 10.203.10.109 X-Target-URI: http://api.linkedin.com Content-Type: application/xml Connection: Keep-Alive [Here Comes XML]
  • 在上面的请求中有很多键in which some of them i have with me they are OAuth oauth_consumer_key = [App Key], oauth_token = [Auth_tokn] 但是i dont have some other keys like : oauth_signature, oauth_nonce‌ 我怎样才能生成这些键?

标签: c# asp.net linkedin


【解决方案1】:

使用此方法发布到 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 设为可选。

【讨论】:

  • 是您对可选提交的 url 的评论让我发现了我的问题的答案。谢谢! +1
  • 如何让用户在帖子中获得链接??
  • 这是不可能的,如果你想拥有它们的副本,你必须在linkedin之外创建它们。最佳策略是在您的后端创建它们并使用此 API 进行共享。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2017-03-16
相关资源
最近更新 更多