我正在尝试按照该指南为YAHOO DSP API生成Oauth身份验证令牌。
Base64编码是一种将二进制数据编码为文本的方式,以便可以轻松地在网络上无错误地传输数据。
在此步骤中,您将获取YDN控制台为您生成的客户端ID和客户端密码,并使用base64协议对其进行编码。您可以使用诸如base64encode.org之类的在线编码服务。
无论您使用哪种服务,请确保在CLIENT_ID和CLIENT_SECRET键上没有空格,并用冒号(即CLIENT_ID:CLIENT_SECRET)分隔CLIENT_ID和CLIENT_SECRET。
现在在本指南中将生成的值引用为ENCODED(CLIENT_ID:CLIENT_SECRET)。
举一个例子:
CLIENT_ID = dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA–p>
CLIENT_SECRET = a7e13ea3740b933496d88755ff341bfb824805a6
AUTHORIZATION = ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5BLS06YTdlMTNlYTM3NDBiOTMzNDk2ZDg4NzU1ZmYzNDFiZmI4MjQ4MDVhNg ==
使用推荐的网站,我得到的授权错误。
我都尝试过一次对整个事物进行编码。编码(CLIENT_ID:CLIENT_SECRET),每个元素分别进行编码(CLIENT_ID):encode(CLIENT_SECRET)。
尝试编码整个内容: ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5B4oCTOiBhN2UxM2VhMzc0MGI5MzM0OTZkODg3NTVmZjM0MWJmYjgyNDgwNWE2
尝试对每个元素进行编码: ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5B4oCT:YTdlMTNlYTM3NDBiOTMzNDk2ZDg4NzU1ZmYzNDFiZmI4MjQ4MDVhNg ==
预期结果: ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnLZZYYNZNYZNYZNYZNYZNYZNYZYYZYYZNYZNYZYZYYZNYZYZYYZYZYYZNYZYZYYZYZYZYYZYZNYZYZYZYZYYZYZYZYZYZYKYZYYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYYZYYZYYZYZYYZYZYYZYZYYZYZYZYWZYZYW
“每个元素”与预期结果之间的区别只是与client_ID和冒号结尾相对应的几个字符。 B4oCT:应为BLS06。
链接到完整的文档: https://developer.yahoo.com/dsp/api/docs/authentication/tokens.html https://developer.yahoo.com/dsp/api/docs/traffic/info/sandbox.html
更新:
Client_ID的最后一个字符是'–'。这是某种非标准字符,在utf-8和Windows 1258中被解释为两个破折号,即'-'。
答案 0 :(得分:0)
另一个不同的是,要注意的是,当解密预期的输出时,您的客户端ID为
dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA--
代替
dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA–
注意,末尾有两个“-”。
OAuth客户端身份验证令牌始终使用以下格式的Base64编码生成
Base64_Encoding(CLIENT_ID:CLIENT_SECRET)
大多数用法执行此Base64编码,编码类型为“ UTF-8”。
看起来,雅虎需要此令牌使用不同的编码。在“ https://www.base64encode.org/”上,如果尝试使用“ Windows-1254”作为目标字符集对“ CLIENT_ID:CLIENT_SECRET”进行编码,则会收到预期的结果。因此,看起来这里的编码和解码都完成了,将“ Windows-1254” 字符集保留在适当的位置。