【问题标题】:Cannot share on LinkedIn using LinkedIn API v. 2无法使用 LinkedIn API v. 2 在 LinkedIn 上共享
【发布时间】:2020-05-17 23:46:21
【问题描述】:

我很难在 LinkedIn 上分享。我正在尝试通过 LinkedIn API V2 发布 LinkedIn 共享,每次我发出发布请求时,我都会从服务器收到一个请求超时(状态 504)的答案。这是我的代码:

myPost = {
      'author': 'urn:li:person:' + this.uid,
      'lifecycleState': 'PUBLISHED',
      'specificContent': {
          'com.linkedin.ugc.ShareContent': {
              'shareCommentary': {
                  'text': 'Hello World! This is my first Share on LinkedIn!'
              },
              'shareMediaCategory': 'NONE'
          }
      },
      'visibility': {
          'com.linkedin.ugc.MemberNetworkVisibility': 'PUBLIC'
      }
  }

header = {
  'Content-Type': 'application/json',
  'X-Restli-Protocol-Version': '2.0.0',
  'Authorization': 'Bearer ' + token
};

this.http.post('https://api.linkedin.com/v2/ugcPosts', myPost, header).then(res => {
    alert(JSON.stringify(res));
  })
  .catch(err => {
    alert(JSON.stringify(err));
  });

这是错误信息:

{
    "message": "Request timed out",
    "status": 504
}

这是一个 angular-ionic 项目,我使用原生的 cordova-plugin-advanced-http 来发出我的帖子请求。我使用相同的本机插件和 LinkedIn API V2 登录 LinkedIn、获取我的访问令牌并从 LinkedIn 检索数据都没有问题。

在我的 LinkedIn 开发者帐户的使用和限制页面上,我可以看到创建方法的 API 调用。

【问题讨论】:

  • 嗨,欢迎来到 StackOverflow!如果您包含您已经尝试过的内容以及它如何不符合您的需求,通常有助于获得答案。此外,有关您在尝试执行共享时收到的错误消息的详细信息将有助于诊断问题。
  • 如果您仍然遇到超时问题,请向 linkedin.zendesk.com 提交工单,并包含从您的 POST 请求中收到的响应标头。

标签: linkedin linkedin-api


【解决方案1】:

如果 LinkedIn 无法解析请求正文,则可能会发生与 LinkedIn API v2 中的 POST 端点相关的超时。此处发布的示例的解决方案是将 myPost 转换为正确的 JSON 字符串,例如。 json.dumps(myPost).

如果缺少 'Content-Type': 'application/json' 标头,也可能发生超时,这只是在使用 ruby​​ 玩他们的 API 时咬我。

【讨论】:

    【解决方案2】:

    在 python 上帮助我解决了同样的问题

    head = {
    'Authorization': 'Bearer '+token, 'X-Restli-Protocol-Version': '2.0.0'
    }
    
    body = {
        "author": 'urn:li:person:'+ID,
        "lifecycleState": "PUBLISHED",
        "specificContent": {
            "com.linkedin.ugc.ShareContent": {
                "shareCommentary": {
                    "text": "Hello World! This is my first Share on LinkedIn!"
                },
                "shareMediaCategory": "NONE"
            }
        },
        "visibility": {
            "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
        }
    }
    
    requests.post('https://api.linkedin.com/v2/ugcPosts', data=json.dumps(body),headers=head)
    

    【讨论】:

    • 我得到这个问题“错误将请求正文解析为 json 非法未引用字符((CTRL-CHAR,代码 10)):必须使用反斜杠进行转义才能包含在 [Source] 的字符串值中\n : (com.linkedin.data.ByteString$ByteArrayVectorInputStream); line: 7, column: 249]" 当我的帖子有“-”时。
    【解决方案3】:

    真的没有理由使用混淆的 js-lib 插件来分享 LinkedIn 上的链接。您只需要:

    https://www.linkedin.com/sharing/share-offsite/?url={url}
    

    来源:Microsoft LinkedIn Share URL Documentation

    例如,这对我有用:

    https://www.linkedin.com/sharing/share-offsite/?url=http://www.wikipedia.org/

    工作正常:

    完全没有身份验证问题。然后只需制作自己的按钮并超链接即可。没问题。

    如果您对定期维护的 GitHub 项目感兴趣,该项目会跟踪此内容,因此您不必这样做,请查看! Social Share URLs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2013-07-08
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多