首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Deezer API访问令牌

Deezer API访问令牌
EN

Stack Overflow用户
提问于 2020-02-11 10:04:43
回答 2查看 6.5K关注 0票数 0

我试图获得deezer API的访问令牌,但是当我发送请求时,我一直收到“错误的代码”消息。以下是上述请求:

代码语言:javascript
复制
'https://connect.deezer.com/oauth/access_token.php?app_id=' + appID + '&secret=' + clientSecret + '&code=' + code;

应用程序ID和客户端秘密位于developers.Depzer.com/myapps上,所以我不会犯这两个错误。

对于我使用的代码,我使用了deezer themself提供的php代码示例(您可以在这里查看它:https://developers.deezer.com/api/oauth),该示例代码是一个简单的页面,它使您同意像往常一样让应用程序使用您的数据。最后,您将重定向到一个空页,其中包含一个类似于此的url (不要担心,代码和作用域都是假的):

代码语言:javascript
复制
http://localhost/deezerAPI/test1.php?code=fr14364f27b39760284c5698&state=27f24b97ab810mb3176d42fh

无论如何,我已经将(假)代码fr14364f27b39760284c5698复制并粘贴到一个自制的节点js程序中(为什么是nodejs?)因为使用节点发送请求要舒服得多(另外,这里的值也是假的):

代码语言:javascript
复制
'use strict';

const express = require('express');
var request = require('request');

const app = new express();

var appID = '<appId>'
var clientSecret = '<clientSecret>';
var code = 'fr14364f27b39760284c5698'

var requestURI = 'https://connect.deezer.com/oauth/access_token.php?app_id=' + appID + '&secret=' + clientSecret + '&code=' + code;

request(requestURI, (error, response, body) => {
  console.log("Recieved body'" + body + "'");
});

app.listen(8081, () => {
    console.log("WebClient is up!");
});

每次我收到身体的“错误密码”。对我来说,这只能意味着两件事:

deezer给我的php代码示例

  • 是错误的,或者我在其中写错了东西(比如应用ID或客户端机密),但这是不太可能的,因为我已经检查了几次。
  • --我编写的节点js代码--是错误的(以我请求示例的方式),或者像以前一样,我输入的信息是错误的(但我也检查了几次……)。我没办法了,如果你们有什么线索,告诉我。提前谢谢。

PS:如果你想看deezer代码示例告诉我,我在我的wamp服务器上拥有的东西和他们的没有什么不同,但是也许你会看到一些不符合的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-11 10:24:11

第一步

代码语言:javascript
复制
   https://connect.deezer.com/oauth/auth.php?app_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&perms=basic_access,email

  • 调用这个URL(当然,用应用程序替换变量),然后用户将被重定向到deezer登录表单,如果客户端经过身份验证,它们将与CODE param一起重定向到{REDIRECT_URL}。您可以获取这些代码,并在下一步中使用它获取访问令牌。* REDIRECT_URI可能是这样的。http://localhost/deezerAPI/test1.php。这样您就可以在这个文件中获得CODE param .

第二步

代码语言:javascript
复制
https://connect.deezer.com/oauth/access_token.php?app_id=YOU_APP_ID&secret=YOU_APP_SECRET&code=THE_CODE_FROM_ABOVE

然后,

  • 用您刚刚收到的CODE调用这个url,然后您可以获得访问令牌。现在,您可以使用此访问令牌发出任何API请求。就是这样,

票数 0
EN

Stack Overflow用户

发布于 2020-02-11 10:11:16

我想,你应该把分号放在所有变量之后。

代码语言:javascript
复制
var appID = '<appId>';
var clientSecret = '<clientSecret>';
var code = 'fr14364f27b39760284c5698';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60166334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档