perl Pinterest API,我试图将代码交换为访问令牌,但返回了意外的错误代码

o3imoua4  于 2023-11-22  发布在  Perl
关注(0)|答案(1)|浏览(312)

我尝试通过Perl获取访问令牌,如下所示。

  1. my $ua = Mojo::UserAgent->new;
  2. my $base64 = encode_base64 "{id}:{secret}";
  3. my $url = "https://api.pinterest.com/v5/oauth/token";
  4. my $tx = $ua->post(
  5. $url => {
  6. 'Authorization' => 'Basic ' . $base64,
  7. 'Content-Type' => 'application/x-www-form-urlencoded'
  8. } => form => {
  9. 'grant_type' => 'authorization_code',
  10. 'code' => {code},
  11. 'redirect_uri' => {my redirect url}
  12. }
  13. );

字符串
返回以下错误。

  1. <HTML><HEAD>
  2. <TITLE>Invalid URL</TITLE>
  3. </HEAD><BODY>
  4. <H1>Invalid URL</H1>
  5. The requested URL "http&#58;&#47;&#47;&#37;5bNo&#37;20Host&#37;5d&#47;v5&#47;oauth&#47;token", is invalid.<p>
  6. Reference&#32;&#35;9&#46;5758c317&#46;1698500314&#46;d8e9663
  7. </BODY></HTML>


有人知道原因吗?上面的URL是什么?“http://%5bNo%20Host%5d/v5/oauth/token”
怎么解决这个问题?我想知道这是什么网址?可能是编码的。
“http://[无主机]/v5/oauth/token”

我用同样的代码试了几次。我得到了如下不同的消息。这很奇怪...
{“code”:1,“message”:“缺少请求正文”}
{“code”:1,“message”:“参数无效"}

ac1kyiln

ac1kyiln1#

自己解决了。
$base64有意外的CRLF。当我添加chomp($base64)时,问题解决了。encode_base64是否会自动添加CRLF?我将看到原始代码。
多谢了!

相关问题