【发布时间】:2021-01-24 02:31:12
【问题描述】:
我已尝试遵循 spotify 授权代码流程,并在获得用户授权的第一道障碍中落下。
我已经尝试过使用 PHP curl 进行此操作。
如果你看看我的代码,我做错了什么?
$url = 'https://accounts.spotify.com/authorize';
$redirect_uri = urlencode( site_url() );
$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $url);
curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curl, CURLOPT_HTTPGET, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, 'state=' );
curl_setopt( $curl, CURLOPT_POSTFIELDS, 'response_type=code' );
curl_setopt( $curl, CURLOPT_POSTFIELDS, 'scope=playlist-read-private%20playlist-modify-private' );
curl_setopt( $curl, CURLOPT_POSTFIELDS, 'client_id=' . $this->client_id );
curl_setopt( $curl, CURLOPT_POSTFIELDS, 'redirect_uri=' . $redirect_uri );
curl_exec( $curl );
curl_close( $curl );
$fullquery = 'https://accounts.spotify.com/authorize?response_type=code&state=&client_id=CLIENT_ID&scope=playlist-read-private%20playlist-modify-private&redirect_uri=http%3A%2F%2Flocalhost%3A8888%2Fspotifyapi';
运行此命令会从 spotify 返回一个嵌入到我的页面中的 html 块,其中包含以下文本:“错误糟糕!出了点问题,请重试或查看我们的帮助区域。”
然而,有趣的是,如果我将完整的查询放入我的搜索栏中,它会完全按照我的预期工作,将我带到一个授权页面,并在接受后,使用我的访问代码重定向回我的回调 url作为 url 中的参数。
为什么我的 PHP 函数不能得到想要的效果?
任何提示将不胜感激。我知道 GitHub 上有一个我可以使用的 php spotify api 包装器,但我想自己做一个学习项目。
【问题讨论】:
-
您已经在 spotify 上创建了一个应用程序?我在您的代码中没有看到任何 CLIENT SECRET 请参阅:github.com/jwilsson/spotify-web-api-php/blob/master/docs/…
-
问题解决了吗?我也有同样的情况。从导航栏访问,Spotify 重定向到我的页面,我可以处理代码,但只能这样 /:
-
$redirect_uri 是否与您在应用中为重定向 URI 设置的 URI 匹配?
-
这里也一样......有人解决了这个问题吗??