저는 UCWA와 암호 토큰을 사용하여 응용 프로그램을 개발했습니다. 이벤트를 사용하여 응용 프로그램으로 인증 된 사용자에게 오는 모든 메시지를 읽었지만 토큰은 오래 가지 않으며 갱신은 자동 화와 관련하여 끔찍한 브라우저를 사용하고 있습니다.Skype에서 UCWA 토큰을 자동으로 새로 고침
내 애플리케이션을 완전히 자동화 할 수 있도록 브라우저를 통해 갱신 할 필요가없는 토큰을 얻는 방법이 있습니까? 나는 Github과 ucwa 웹 사이트의 모든 문서를 읽었습니다.
토큰을 얻으려는 요청입니다.
로그인 절차의 URL을
데프 get_signin_url (redirect_uri로, CLIENT_ID, 거주자 자원) 얻기 : 여러 단계 후 xframe, user_discovery_uri 자원 = do_autodiscover (구성 [ '도메인'])
# Build the query parameters for the signin url
params = {
'client_id': client_id,
'redirect_uri': redirect_uri,
'response_type': 'token',
'response_mode': 'form_post',
'resource': resource
}
# The authorize URL that initiates the OAuth2 client credential flow for admin consent
authorize_url = '{0}{1}'.format(authority, '/%s/oauth2/authorize?{0}' % tenant)
# Format the sign-in url for redirection
signin_url = authorize_url.format(urlencode(params))
return signin_url
을 토큰 받기 :
def get_token_from_code(client_id, tenant, auth_code, redirect_uri, resource, client_secret):
# Build the post form for the token request
post_data = {
'grant_type': 'authorization_code',
'code': auth_code,
'redirect_uri': redirect_uri,
'resource': resource,
'client_id': client_id,
'client_secret': client_secret
}
# The token issuing endpoint
token_url = '{0}{1}'.format(authority, '/{0}/oauth2/token'.format(tenant))
# Perform the post to get access token
response = requests.post(token_url, data=post_data)
try:
# try to parse the returned JSON for an access token
access_token = response.json()['id_token']
return access_token
except:
raise Exception('Error retrieving token: {0} - {1}'.format(
response.status_code, response.text))
고마워요!
것 같습니다. broswer를 사용하지 않고 토큰을 얻기 위해 [ADAL library for Python] (https://github.com/AzureAD/azure-activedirectory-library-for-python)을 사용하지 않는 이유가 있습니까? – ShelbyZ
답변 해 주셔서 감사합니다! 하지만 내 주요 문제는 Active Directory 토큰이 아니라 UCWA 토큰과 다릅니다. ADAL과 Andrey Markeev의 답변을 사용하여 솔루션을 개선 할 수 있도록 노력하겠습니다. +1 : –