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

o3imoua4  于 6个月前  发布在  Perl
关注(0)|答案(1)|浏览(91)

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

my $ua = Mojo::UserAgent->new;
    my $base64 = encode_base64 "{id}:{secret}";

    my $url = "https://api.pinterest.com/v5/oauth/token";
    my $tx = $ua->post(
        $url => {
            'Authorization' => 'Basic ' . $base64,
            'Content-Type' => 'application/x-www-form-urlencoded'
        } => form => {
            'grant_type' => 'authorization_code',
            'code' => {code},
            'redirect_uri' => {my redirect url}
        }
    );

字符串
返回以下错误。

<HTML><HEAD>
<TITLE>Invalid URL</TITLE>
</HEAD><BODY>
<H1>Invalid URL</H1>
The requested URL "http&#58;&#47;&#47;&#37;5bNo&#37;20Host&#37;5d&#47;v5&#47;oauth&#47;token", is invalid.<p>
Reference&#32;&#35;9&#46;5758c317&#46;1698500314&#46;d8e9663
</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?我将看到原始代码。
多谢了!

相关问题