Partner Center rest api 401 error

2019-08-01 07:40发布

I tried to use partnercenter api to get the billing details. But API call return 401 error code. the details provided on partnercpi are correct one and its working fine If I give it as input for Subscription API.

URL : https://api.partnercenter.microsoft.com/v1/customers/<Customer-tenant-ID>/subscriptions/<Subscription-ID>/usagerecords/resources

Can you suggest what can be the reason for the error.

Reference link : https://msftstack.wordpress.com/2016/01/05/azure-resource-manager-authentication-with-python/

Here is my python code.

import adal
import requests


application_secret = 'asdq23Y+tRgEspFxQDPasd'
application_id = '523129-1267b-123'


authentication_endpoint = 'https://login.microsoftonline.com/'
resource  = 'https://management.core.windows.net/'

context = adal.AuthenticationContext(authentication_endpoint + tenant_id)
token_response = context.acquire_token_with_client_credentials(resource, application_id, application_secret)

access_token = token_response.get('accessToken')


endpoint = "https://api.partnercenter.microsoft.com/v1/customers/<customer tenant ID>/subscriptions/<sub-id>/usagerecords/resources"


headers = {"Authorization": 'Bearer ' + access_token}

json_output = requests.get(endpoint,headers=headers)
print json_output

Output Response:

<Response [401]>

Is this method not fit for partnerapi usage collection ?. If not pls suggest alternate option. Thanks in advance.

1条回答
时光不老,我们不散
2楼-- · 2019-08-01 07:54

401 is because partner center does not work with just the token from Azure AD.

The actual Auth workflow

  1. Get a Token from Azure AD.
  2. Use that token to get an access token from PartnerCenter.
  3. Use this token to communicate with the partner center REST APIs.

More Info Here

查看更多
登录 后发表回答