我一直在尝试在MeteorJS中重新创建spotify oauth连接.我已经获得了请求访问和刷新令牌,但我现在仍然收到415错误.这是相关代码:
var results = HTTP.post(
'https://accounts.spotify.com/api/token',
{
data: {
code: code,
redirect_uri: redirectURI,
grant_type: 'authorization_code',
client_id: clientID,
client_secret: clientSecret
},
headers: {
'Content-Type':'application/json'
}
}
);
Run Code Online (Sandbox Code Playgroud)
我似乎无法在此演示中找到问题和代码的任何其他良好文档:
https://github.com/spotify/web-api-auth-examples/tree/master/authorization_code
工作得很好.
背景
我正在我的 React 应用程序中测试隐式流身份验证,并尝试实现所谓的 静默刷新功能,在用户登录时,我定期要求一个新的访问令牌,而无需要求他提供新的授权。
以下是 Flow 模式Auth0 Tenant
,在我的例子中,是 Spotify:
虽然使用隐式授权的 SPA(单页应用程序)不能使用刷新令牌,但还有其他方法可以提供类似的功能:
prompt=none
调用/authorize
端点时使用。用户不会看到登录或同意对话框。
/authorize
从隐藏的 iframe调用并从父框架中提取新的访问令牌。用户不会看到重定向发生。
另一种方法是实现类似包axios-auth-refresh 的东西,一个库
帮助您通过
axios
拦截器实现授权的自动刷新。当原始请求失败时,您可以轻松拦截原始请求,刷新授权并继续原始请求,无需任何用户交互。
用法:
import axios from 'axios';
import createAuthRefreshInterceptor from 'axios-auth-refresh';
// Function that will be called to refresh authorization
const refreshAuthLogic = failedRequest => axios.post('https://www.example.com/auth/token/refresh').then(tokenRefreshResponse => {
localStorage.setItem('token', tokenRefreshResponse.data.token);
failedRequest.response.config.headers['Authorization'] = 'Bearer ' + tokenRefreshResponse.data.token;
return Promise.resolve();
});
// Instantiate the interceptor (you can chain it as …
Run Code Online (Sandbox Code Playgroud) 我为我的应用程序正确启用了背景音频(在plist中).在当前完成后播放下一首曲目在后台使用SPPlaybackManager(当手机被锁定/关闭时)不起作用.
当前曲目结束并且音频停止时,应用将不会开始播放下一首曲目,直到手机解锁并且我的应用再次变为活动状态.
我该如何解决?这是我用来开始播放下一首曲目的一段代码.我观察到当前曲目变为零,然后开始播放下一首曲目.日志显示我正在回放管理器对象中设置下一个当前曲目,但它是无声的.
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if([keyPath isEqualToString:@"spotifyPlaybackManager.currentTrack"]){
NSLog(@"%@ %@",keyPath,self.spotifyPlaybackManager.currentTrack);
if(self.spotifyPlaybackManager.currentTrack==nil && self.mode == PlayerModeSpotify){
NSLog(@"PLAY NEXT");
[self.spotifyPlaybackManager playTrack:self.nextSPTrack callback:^(NSError *error){
if(error) TKLog(@"Spotify Playback Error %@",error);
}];
}
[[NSNotificationCenter defaultCenter] postNotificationName:PlayerNowPlayingItemDidChange object:self];
return;
}
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
Run Code Online (Sandbox Code Playgroud)
安慰:
spotifyPlaybackManager.currentTrack (null)
PLAY NEXT
spotifyPlaybackManager.currentTrack <SPTrack: 0x60f8390>: Karaoke
Run Code Online (Sandbox Code Playgroud) 我正在制作一个包含spotify集成的应用程序,我按照这个链接https://developer.spotify.com/technologies/spotify-android-sdk/tutorial/
通过这个链接的引用,我把"festevo:// callback"作为回调重定向URI
当我每次遇到同样的错误时尝试登录spotify时.
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="callback"
android:scheme="festevo" />
Run Code Online (Sandbox Code Playgroud)
请告诉我为什么会这样......
谢谢.
请告知我如何增加令牌到期时间使用spotify web API" https://accounts.spotify.com/api/token " 获取数据
我正在试用我的mac 10.10预装的python 2.7.10,特别是[add_a_saved_track.py] [1]这是从github复制的代码:
# Add tracks to 'Your Collection' of saved tracks
import pprint
import sys
import spotipy
import spotipy.util as util
scope = 'user-library-modify'
if len(sys.argv) > 2:
username = sys.argv[1]
tids = sys.argv[2:]
else:
print("Usage: %s username track-id ..." % (sys.argv[0],))
sys.exit()
token = util.prompt_for_user_token(username, scope)
if token:
sp = spotipy.Spotify(auth=token)
sp.trace = False
results = sp.current_user_saved_tracks_add(tracks=tids)
pprint.pprint(results)
else:
print("Can't get token for", username)
Run Code Online (Sandbox Code Playgroud)
我使用developer.spotify.com/my-applications注册了该应用程序,并收到了client_id和client_secret.我对redirect_uri的选择有点不清楚所以我把它设置为' https://play.spotify.com/collection/songs '
从终端运行这个我得到一个错误,说:
You need to set your Spotify API credentials. You …
Run Code Online (Sandbox Code Playgroud) 是否可以使用本机API进行跨平台订阅并在自己的后端管理这些订阅?
示例:在iOS设备上订阅iOS更改设备并降级(取消)订阅(计划).
例如,Spotify通过PayPal和其他付款方式进行跨平台订阅,但我不确定我们的应用是否会被拒绝,考虑到这两个平台的应用内指南.
我正在尝试使用docker-maven-plugin(由spotify提供:https://github.com/spotify/docker-maven-plugin)来构建一个docker镜像,但事情并没有真正解决.起初我得到了这个例外:
org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375
Run Code Online (Sandbox Code Playgroud)
我发现我必须创建一个环境.变量来解决这个问题(https://github.com/spotify/docker-maven-plugin/issues/135):
set DOCKER_HOST=set DOCKER_HOST=tcp://192.168.99.100:2376
Run Code Online (Sandbox Code Playgroud)
所以在设置了env之后.变量我一直得到这个ClientProtocolException:
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.3.258:build (default-cli) on project docker_micro_maven: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.client.ClientProtocolException: The server failed to respond with a valid HTTP response
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个问题,任何输入都会非常感激.
文艺青年最爱的 我收到:
JSON text did not start with array or object and option to allow fragments not set.
如果我想获得一个令牌和No refresh token available in the session!
如果我尝试续订的令牌.
我正在尝试为Swift 3中的Objective-C Spotify iOS SDK beta-25设置令牌刷新.我正在使用Heroku服务器和Spotify提供的Ruby脚本,更改为我的凭据.
require 'sinatra'
require 'net/http'
require 'net/https'
require 'base64'
require 'encrypted_strings'
require 'json'
CLIENT_ID = ENV['xxx']
CLIENT_SECRET = ENV['xxx']
ENCRYPTION_SECRET = ENV['xxx']
CLIENT_CALLBACK_URL = ENV['xxx://returnafterlogin']
AUTH_HEADER = "Basic " + Base64.strict_encode64(CLIENT_ID + ":" + CLIENT_SECRET)
SPOTIFY_ACCOUNTS_ENDPOINT = URI.parse("https://accounts.spotify.com")
get '/' do
"Working"
end
post '/swap' do
# This …
Run Code Online (Sandbox Code Playgroud) 使用Spotify Web API的新端点/播放器,我们现在可以控制Spotify客户端的播放.使用端点https://api.spotify.com/v1/me/player/play,我们可以添加要播放的歌曲.
我想知道是否有办法利用新的端点将歌曲添加到玩家的队列中.我打算写一个应用程序,让多个客人请求可以通过聚会上的Spotify播放的歌曲.
有没有人有想法?