Spotify API php - 无法请求数据和获取访问令牌
Spotify API php - unable to request data and get access token
我目前刚开始使用 php 和 Laravel 并使用 API,但是我一直在关注 Spotify PHP 教程 https://github.com/jwilsson/spotify-web-api-php。
我也把一些我想问的问题加粗了,希望有人能帮忙。
我已按照所有步骤操作,但需要帮助才能使其正常运行。
将以下代码放在自己的文件中,我们称之为auth.php。将 CLIENT_ID 和 CLIENT_SECRET 替换为 Spotify 给您的值。
(我应该把这个文件保存在哪里?)
REDIRECT_URI 是您在创建 Spotify 应用程序时输入的,请确保它完全匹配。
(我使用了我的 localhost:8888/callback/ 不确定这是否正确?)显然,出于安全原因,我没有在这个网站上放我的详细信息。
<?php
require 'vendor/autoload.php';
$session = new SpotifyWebAPI\Session(
'CLIENT_ ID',
'CLIENT_SECRET',
'REDIRECT_URL'
);
$options = [
'scope' => [
'playlist-read-private',
'user-read-private',
],
];
header('Location: ' . $session->getAuthorizeUrl($options));
die();
?>
当用户批准您的应用程序后,Spotify 会将用户连同代码一起重定向到指定的重定向 URI。您需要使用此代码从 Spotify 请求访问令牌。
将此代码放入名为 callback.php:
的新文件中
是否用我的详细信息替换客户端 ID 和密码?还有我如何保存访问令牌?
require 'vendor/autoload.php';
$session = new SpotifyWebAPI\Session(
'CLIENT_ID',
'CLIENT_SECRET',
'REDIRECT_URI'
);
// Request a access token using the code from Spotify
$session->requestAccessToken($_GET['code']);
$accessToken = $session->getAccessToken();
$refreshToken = $session->getRefreshToken();
// Store the access and refresh tokens somewhere. In a database for example.
// Send the user along and fetch some data!
header('Location: app.php');
die();
在第三个文件 app.php 中,告诉 API 包装器要使用哪个访问令牌,然后进行一些 API 调用!
(我还在哪里保存此文件以及如何在我的 Laravel 控制器中进行这些调用?)
require 'vendor/autoload.php';
$api = new SpotifyWebAPI\SpotifyWebAPI();
// Fetch the saved access token from somewhere. A database for example.
$api->setAccessToken($accessToken);
// It's now possible to request data about the currently authenticated user
print_r(
$api->me()
);
// Getting Spotify catalog data is of course also possible
print_r(
$api->getTrack('7EjyzZcbLxW7PaaLua9Ksb')
);
(Where abouts should I save this file?)
您可以将此文件保存在 laravel 中的不同位置,为了测试,您可以将其写入控制器(不是最好但可以)。
Do replace client id and secret with my detail?
当然可以!
also how do I save the access token?
您可以保存在数据库或会话中或您想要的地方。如果将其存储在会话中,则如果用户注销您的应用程序,则必须发出新请求以获取新的访问令牌。在数据库中,您可以重用它。
许多访问令牌仅在特定期限内可用。 spotify 文档应该讲到它。
(Where do i also save this file and how do I make these calls in my Laravel Controllers?)
为了进行测试,您可以在控制器中执行此操作,但最好有一个服务层来放置应用程序的业务逻辑。
不要在您的文件中复制 require 'vendor/autoload.php';
laravel 已经处理了作曲家的自动加载。
我目前刚开始使用 php 和 Laravel 并使用 API,但是我一直在关注 Spotify PHP 教程 https://github.com/jwilsson/spotify-web-api-php。
我也把一些我想问的问题加粗了,希望有人能帮忙。
我已按照所有步骤操作,但需要帮助才能使其正常运行。
将以下代码放在自己的文件中,我们称之为auth.php。将 CLIENT_ID 和 CLIENT_SECRET 替换为 Spotify 给您的值。
(我应该把这个文件保存在哪里?)
REDIRECT_URI 是您在创建 Spotify 应用程序时输入的,请确保它完全匹配。
(我使用了我的 localhost:8888/callback/ 不确定这是否正确?)显然,出于安全原因,我没有在这个网站上放我的详细信息。
<?php
require 'vendor/autoload.php';
$session = new SpotifyWebAPI\Session(
'CLIENT_ ID',
'CLIENT_SECRET',
'REDIRECT_URL'
);
$options = [
'scope' => [
'playlist-read-private',
'user-read-private',
],
];
header('Location: ' . $session->getAuthorizeUrl($options));
die();
?>
当用户批准您的应用程序后,Spotify 会将用户连同代码一起重定向到指定的重定向 URI。您需要使用此代码从 Spotify 请求访问令牌。
将此代码放入名为 callback.php:
的新文件中是否用我的详细信息替换客户端 ID 和密码?还有我如何保存访问令牌?
require 'vendor/autoload.php';
$session = new SpotifyWebAPI\Session(
'CLIENT_ID',
'CLIENT_SECRET',
'REDIRECT_URI'
);
// Request a access token using the code from Spotify
$session->requestAccessToken($_GET['code']);
$accessToken = $session->getAccessToken();
$refreshToken = $session->getRefreshToken();
// Store the access and refresh tokens somewhere. In a database for example.
// Send the user along and fetch some data!
header('Location: app.php');
die();
在第三个文件 app.php 中,告诉 API 包装器要使用哪个访问令牌,然后进行一些 API 调用!
(我还在哪里保存此文件以及如何在我的 Laravel 控制器中进行这些调用?)
require 'vendor/autoload.php';
$api = new SpotifyWebAPI\SpotifyWebAPI();
// Fetch the saved access token from somewhere. A database for example.
$api->setAccessToken($accessToken);
// It's now possible to request data about the currently authenticated user
print_r(
$api->me()
);
// Getting Spotify catalog data is of course also possible
print_r(
$api->getTrack('7EjyzZcbLxW7PaaLua9Ksb')
);
(Where abouts should I save this file?)
您可以将此文件保存在 laravel 中的不同位置,为了测试,您可以将其写入控制器(不是最好但可以)。
Do replace client id and secret with my detail?
当然可以!
also how do I save the access token?
您可以保存在数据库或会话中或您想要的地方。如果将其存储在会话中,则如果用户注销您的应用程序,则必须发出新请求以获取新的访问令牌。在数据库中,您可以重用它。
许多访问令牌仅在特定期限内可用。 spotify 文档应该讲到它。
(Where do i also save this file and how do I make these calls in my Laravel Controllers?)
为了进行测试,您可以在控制器中执行此操作,但最好有一个服务层来放置应用程序的业务逻辑。
不要在您的文件中复制 require 'vendor/autoload.php';
laravel 已经处理了作曲家的自动加载。