我目前还不熟悉使用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')
);
(我应该在哪里保存这个文件?)
您可以将此文件保存在laravel中的不同位置,用于测试,您可以将其写入控制器(不是最好的,但您可以)。
用我的资料替换客户ID和机密吗?
当然可以!
还有,如何保存访问令牌?
您可以将其保存在数据库、会话或所需的位置。如果您将其存储在会话中,那么如果用户注销了您的应用程序,您将不得不发出新请求以获取新的访问令牌。在数据库中,您可以重用它。
许多访问令牌只能在特定的时间内使用。Spotify文档应该谈谈它。
(我在哪里也保存这个文件,我如何在我的Laravel控制器中拨打这些电话?)
为了进行测试,您可以在控制器中执行此操作,但最好在服务层中放置应用程序的业务逻辑。
不要复制require'供应商/自动加载。php'
在你的文件中,Larvel已经自动加载了composer。
我试图使用从Spring应用程序中的公共客户端获取访问令牌。 谁能帮我弄清楚我做错了什么吗?
我试图使用请求模块向https://accounts.spotify.com/api/token发出POST请求,以便获得访问令牌。我已经用我的Spotify开发帐户注册了重定向URI。这是我的快速<代码>/重定向 路由。 有人能看到这里可能出了什么问题吗?每次我得到的都是一个不伦不类的“哎呀!出了问题”错误页面。
我想在我的应用程序中使用Google drive api,这就是为什么我在安装的应用程序中使用OAuth2.0。但我有个问题--我拿不到访问令牌。首先,我使用以下请求成功地获得了授权代码:
原理 对于POST请求的处理,koa2没有封装获取参数的方法,需要通过解析上下文context中的原生node.js请求对象req,将POST表单数据解析成query string(例如:a=1&b=2&c=3),再将query string 解析成JSON格式(例如:{"a":"1", "b":"2", "c":"3"}) 注意:ctx.request是context经过封装的请求对象,ctx.
使用方法 在koa中,获取GET请求数据源头是koa中request对象中的query方法或querystring方法,query返回是格式化好的参数对象,querystring返回的是请求字符串,由于ctx对request的API有直接引用的方式,所以获取GET请求数据有两个途径。 1.是从上下文中直接获取 请求对象ctx.query,返回如 { a:1, b:2 } 请求字符串 ctx.que
客户端通过使用按附录B“application/x-www-form-urlencoded”格式在HTTP请求实体正文中发送下列UTF-8字符编码的参数向令牌端点发起请求: grant_type 必需的。值必须设置为“client_credentials”。 scope 可选的。如3.3节所述的访问请求的范围。 客户端必须如3.2.1所述与授权服务器进行身份验证。 例如,客户端使用传输层安全发起如