如何使用Python3.3访问Windows Azure帐户令牌

2024-09-30 12:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是编程新手,我希望使用Python3.3访问WindowsTranslate令牌。MS对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工作,并需要访问令牌?在

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


Tags: 代码importcomclientapihttpresponse错误
1条回答
网友
1楼 · 发布于 2024-09-30 12:27:28

我找到了解决办法。MS在这里有一个有用的调试工具:http://oauthdevconsole.cloudapp.net/PartialOAuth

最后,解决方案是需要将头文件转换为字符串,并且必须使用上面的工具修改秘密中不寻常字符的解决方案。在

最终代码如下:

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)

谨致问候

  • 罗布

相关问题 更多 >

    热门问题