无法在Linkedin API Marketing Developer Platform #linkedin

时间:2019-05-17 05:29:45

标签: linkedin linkedin-api

首先,我向那些可能认为此问题不适合在StackOverflow上发布此问题的StackOverflow用户致歉。

即使这是针对Linkedin的特定问题,但Linkedin仍希望其用户根据this page将其在线支持论坛移至StackOverflow之后,对StackOverflow上的任何技术问题提出疑问。

Linkedin似乎希望在StackOverflow中为用户管理技术支持,在该平台上,工程师会定期使用#linkedin hashtag检查问题。

这是我面临的问题:

我想使用两足式授权,因为我想将其用于Marketing Developer产品-已被批准并已添加到我的应用程序中-但在请求访问令牌后继续收到以下错误消息通过使用基于this document的Python从Linkedin API中获得。

import requests

使用GET方法进行请求

r = requests.get('https://www.linkedin.com/oauth/v2/accessToken?grant_type=client_credentials&client_id={MY_CLIENT_ID}&client_secret={MY_CLIENT_SECRET}')

result:
<Response [401]>

r.json()
{'error': 'access_denied',
'error_description': 'This application is not allowed to create application tokens'}

使用POST方法进行请求

r = requests.post('https://www.linkedin.com/oauth/v2/accessToken?grant_type=client_credentials&client_id={MY_CLIENT_ID}&client_secret={MY_CLIENT_SECRET}')

result:
<Response [401]>

r.json()
{'error': 'access_denied',
'error_description': 'This application is not allowed to create application tokens'}

根据我的理解,由于我的应用仅获得了三足授权,因此我需要为客户端凭据流请求其他权限。

我还检查了我的应用程序下的“验证”标签。而且只有三腿成员权限,而没有两腿应用程序权限的权限。

任何人都可以建议我如何解决此问题? -我已经在Linkedin提供的每个频道中发送了所有电子邮件。

我是否需要执行其他操作以帮助我授予此两足式权限? 还是我以错误的格式将URL发送到Linkedin API?

有人遇到过类似情况,并且在采取某种措施后最终解决了该问题吗?还是我应该等到Linkedin完全授予here所提及的一切,以便Linkedin逐步授予访问权限?

谢谢!

以下在5月22日添加

在我的用例中,我需要同时具有“ r_ads”(检索元数据)和“ r_ads_reporting”(检索度量)权限。 因此,我经历了相同的过程,一个接一个地获取每个许可,但是一旦授予一个许可的访问令牌,就撤销了另一个许可的访问令牌。

{'serviceErrorCode': 65601, 'message': 'The token used in the request has been revoked by the user', 'status': 401}

这是我获取授权码的方法:

import requests

base_url = 'https://www.linkedin.com/oauth/v2/authorization'
redirect_uri = 'MY_URL'
state = 'SOME_RANDOM_STRING'
client_id = 'MY_CLIENT_ID'
client_secret = 'MY_CLIENT_SECRET'

params = {
    'response_type':'code',
    'client_id':client_id,
    'redirect_uri':redirect_uri,
    'state':state,
    'scope': ['r_ads_reporting', 'r_ads']
    # or put scope parameter one by one like this
    #'scope':'r_ads_reporting'
    #'scope':'r_ads'
}

在我转到LinkedIn OAuth 2.0授权页面后,我能够获取将被交换为访问令牌的授权代码。

这是我获取访问令牌的方法:

base_url = 'https://www.linkedin.com/oauth/v2/accessToken'

params = {
    'grant_type':'authorization_code',
    'code':'CODE_FROM_PREVIOUS_STEP',
    'redirect_uri':redirect_uri,
    'client_id':client_id,
    'client_secret':client_secret,
}

r = requests.post(base_url, params=params)

# My access token
access_token = r.json()['access_token']

现在我在此过程中有了令牌,但是,使用此令牌,我只能执行一项任务,即需要r_ads许可的任务或另一项需要r_ads_reporting许可的任务。

您能建议我如何向一个用户授予多个权限吗? 谢谢!

0 个答案:

没有答案