0

我正在为我的 asp.net mvc4 应用程序开发社交网络集成。

Twitter 和 Facebook 对我来说很容易,但我严重坚持使用 LinkedIn。

这是我的代码。

    public ActionResult LinkedInTest(string text)
    {
        var client = new RestClient
                         {
                             Authority = "https://api.linkedin.com/uas/oauth",
                             Credentials = LinkedInSocialHelper.GetCredentials()
                         };
        var request = new RestRequest {Path = "requestToken"};
        RestResponse response = client.Request(request);

        token = response.Content.Split('&')[0].Split('=')[1];
        tokenSecret = response.Content.Split('&')[1].Split('=')[1];
        textToPost = text;
        Response.Redirect("https://api.linkedin.com/uas/oauth/authorize?oauth_token=" + token + "&scope=r_basicprofile+r_emailaddress+r_network+r_contactinfo+rw_nus");
        return null;
        textToPost = text;
        return RedirectToAction("LinkedInCallback");
    }

    public ActionResult LinkedInCallback()
    {
        verifier = Request["oauth_verifier"];

        var client = new RestClient
                         {
                             Authority = "https://api.linkedin.com/uas/oauth",
                             Credentials = LinkedInSocialHelper.GetCredentials(token, tokenSecret, verifier),
                             Method = WebMethod.Post
                         };
        var request = new RestRequest {Path = "accessToken"};
        RestResponse response = client.Request(request);
        token = response.Content.Split('&')[0].Split('=')[1];
        tokenSecret = response.Content.Split('&')[1].Split('=')[1];
        LinkedInSocialHelper.Post(textToPost, token, tokenSecret);
        return RedirectToAction("Calendar");
    }
    public static void Post(string text, string accessToken, string accessTokenSecret)
    {
        var tokenManager = new TokenManager(ApiKey, ApiSecret);
        tokenManager.ExpireRequestTokenAndStoreNewAccessToken(null, null, accessToken, accessTokenSecret);
        var authorization = new WebOAuthAuthorization(tokenManager, UserToken);
        LinkedInService service = new LinkedInService(authorization);
        //var user = service.GetCurrentUser(ProfileType.Public); - IT IS GIVING ME THE SAME ERROR - Access denied
        service.CreateShare(text, VisibilityCode.ConnectionsOnly);
    }

一切正常,除了最后一件事 - 发布共享 - 尽管我使用所有必要的权限生成令牌,但我可以访问发布共享被拒绝异常:

"https://api.linkedin.com/uas/oauth/authorize?oauth_token=" + token + "&scope=r_basicprofile+r_emailaddress+r_network+r_contactinfo+rw_nus"

希望各位好心人帮帮我。

4

1 回答 1

0

请参阅此处的最后一篇文章 - 它描述了如何解决它

https://developer.linkedin.com/forum/permission-scope-request-token-query-not-working?page=1

于 2012-11-14T12:59:44.627 回答