gpt4 book ai didi

python - 如何使用 Python 3.3 访问 Windows Azure 帐户 token

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:02 27 4
gpt4 key购买 nike

我是编程新手,我希望使用 Python 3.3 访问 Windows 翻译 token 。 MS有指导方针here对于 C# 和 PHP,但我似乎无法在 Python 中复制它们的成功。代码在 HTTPConnection 阶段失败。

编辑 [5 月 14 日]:我发现了一些似乎有帮助的改进

我的简单连接代码是:

from suds.client import Client
import http.client

# Initialize variables:
wsdlUrl = "http://api.microsofttranslator.com/V2/Soap.svc"
clientID = "ID";
clientSecret = "SECRET"
authUrl = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13/"
scopeUrl = "http://api.microsofttranslator.com"
grantType = "client_credentials"

def getTokens(grantType, scopeUrl, clientID, clientSecret, authUrl):
headers = {"grant_type": grantType, "client_id": clientID, "client_secret": clientSecret, "scope": scopeUrl}
conn = http.client.HTTPSConnection('datamarket.accesscontrol.windows.net')
conn.request("POST", "/v2/OAuth2-13", "", headers)
response = conn.getresponse()
print(response.status, response.reason)


getTokens(grantType, scopeUrl, clientID, clientSecret, authUrl)

现在收到的错误是:400 错误请求

我研究了这个错误,并且在提供答案的情况下修复它往往相当简单。我已使用这些修复检查了代码,但无济于事。

我想对于任何想要使用 Azure 并需要访问 token 的人来说,这是一个相当常见的问题?

如果您对如何诊断此错误或获取访问 key 的更好方法有任何建议,请分享。

最佳答案

我找到了解决方案。 MS 有一个有用的调试工具:http://oauthdevconsole.cloudapp.net/PartialOAuth

最终的解决方案是,需要将 header 转换为字符串,并且必须使用上面的工具修改 secret 中不寻常字符的解决方法。

最终代码在这里:

def getTokens(grantType, scopeUrl, clientID, clientSecret, authUrl):
conn = http.client.HTTPSConnection('datamarket.accesscontrol.windows.net')
conn.request("POST", "/v2/OAuth2-13/", "client_id="+clientID+"&client_secret="+clientSecret+"&grant_type=client_credentials&scope="+scopeUrl)
response = conn.getresponse()
print(response.status, response.reason)

最诚挚的问候,

  • 罗布

关于python - 如何使用 Python 3.3 访问 Windows Azure 帐户 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23637400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com