所以我只是在玩Spotify的Web API,而我正试图访问我的最佳播放曲目.虽然我遇到了一个问题,但我一直试图解决几个小时,但我找不到答案.
当我尝试反序列化我的响应时,我得到以下错误:
"UTF8"不是受支持的编码名称.有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档.参数名称:name ContentType中提供的字符集无效.无法使用无效字符集将内容读取为字符串.
ContentType是 application/json; charset=UTF8
有任何想法吗?
这是我的请求代码:
private static HttpClient GetHttpClient()
{
HttpClientHandler handler = new HttpClientHandler() {
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
};
var httpClient = new HttpClient(handler);
httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
return httpClient;
}
public async Task<SearchArtistResponse> GetSelfTopAsync(string type, string userName)
{
var httpClient = GetHttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", GetAccessToken(userName));
var sb = new StringBuilder();
sb.Append(ApiUrl);
sb.Append($"/me/top/{type}");
var query = sb.ToString();
var response = await httpClient.GetAsync(query);
var spotifyResponse = JsonConvert.DeserializeObject<SearchArtistResponse>(await response.Content.ReadAsStringAsync());
return spotifyResponse;
}
Run Code Online (Sandbox Code Playgroud) 看看这个播放按钮,看起来完整似乎,使用javascript:spotify播放按钮.
请注意,按下播放将导致Spotify开始播放音乐.好吧,我认为这是通过一些特定于应用程序的协议链接(如spotify:// play)完成的,尽管我可能错了.但疯狂的部分是,如果你停止在Spotify中播放音乐,该按钮将在浏览器中更新,以显示音乐已停止播放!这是如何运作的?
我正在使用node.js服务器,Spotify API和spotify-web-api-js节点模块来创建一个Web应用程序,用户可以在其中输入艺术家的名字,查看相关艺术家的歌曲列表,然后可选择将该播放列表保存到自己的Spotify帐户.但是,我仍然在最后一步遇到麻烦.
我的用户授权流程首先发生:
if (params.access_token) {
s.setAccessToken(params.access_token);
s.getMe().then(function(data) {
console.log(data);
console.log(data.id);
user_id = data.id;
Run Code Online (Sandbox Code Playgroud)
下面是API收集歌曲的实际细节的地方.尽管它较低,但它首先出现,并且仅当用户单击该页面上的第二个按钮时才会发生用户授权.
async.times(counter, function(n, next){
s.getArtistTopTracks(relatedArtists[n].id, "US", function (err, data2) {
relatedArtists[n].song = data2.tracks[0].name;
relatedArtists[n].uri = data2.tracks[0].uri;
console.log(relatedArtists[n].uri);
// make sure to put the access token here add song to playlist
// create array
song_uris.push(relatedArtists[n].uri);
console.log(song_uris);
// song_uris = relatedArtists[n].uri;
//
// console.log(song_uris);
next(null);
$("#playlist").load(function() {
s.addTracksToPlaylist(user_id, playlist_id, song_uris);
});
});
}, function(err) {
// console.table(relatedArtists);
for (k = 0; k < 20; k++)
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spotify的SDK为我的iOS应用设置登录.我有登录工作,但只有没有令牌.一旦我添加这两行代码:
SPTAuth.defaultInstance().tokenSwapURL = NSURL(string: kTokenSwapURL)
SPTAuth.defaultInstance().tokenRefreshURL = NSURL(string: kTokenRefreshServiceURL)
Run Code Online (Sandbox Code Playgroud)
登录不起作用.这是我的登录代码.
AppDelegate.swift
let kClientID = "my-client-id"
let kCallbackURL = "my-callback-url"
let kTokenSwapURL = "my-token-swap-url"
let kTokenRefreshServiceURL = "my-token-refresh-url"
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// Override point for customization after application launch.
SPTAuth.defaultInstance().clientID = kClientID
SPTAuth.defaultInstance().redirectURL = NSURL(string: kCallbackURL)
SPTAuth.defaultInstance().requestedScopes = [SPTAuthStreamingScope, SPTAuthUserReadPrivateScope, SPTAuthPlaylistReadPrivateScope]
SPTAuth.defaultInstance().sessionUserDefaultsKey = "SpotifySession"
window = UIWindow(frame: UIScreen.mainScreen().bounds)
let loginViewController = LoginViewController(nibName: "LogInViewController", bundle: nil)
let …Run Code Online (Sandbox Code Playgroud) 我正在测试以下示例,通过登录并重定向到auth屏幕来验证用户身份 - http://jsfiddle.net/JMPerez/j1sqq4g0/
此示例使用带有以下脚本的回调页面:
(function() {
var hash = {};
window.location.hash.replace(/^#\/?/, '').split('&').forEach(function(kv) {
var spl = kv.indexOf('=');
if (spl != -1) {
hash[kv.substring(0, spl)] = decodeURIComponent(kv.substring(spl+1));
}
});
console.log('initial hash', hash);
if (hash.access_token) {
window.opener.postMessage(
JSON.stringify({
type:'access_token',
access_token: hash.access_token,
expires_in: hash.expires_in || 0
}),
'http://fiddle.jshell.net'
);
window.close();
}
})();
Run Code Online (Sandbox Code Playgroud)
在手机上试用时,它会在Safari中打开一个新标签.是否可以检查应用程序是否安装在iOS上并通过它登录?将使这个过程更快.
正如在这里的一个问题中看到的那样,它似乎已经解决但却无法理解触发它的原因是什么?- https://github.com/spotify/web-api/issues/718
谢谢!
有谁知道如何找到Spotify的给定艺术家/专辑的musicbrainz URI的URI?Spotify的web-api并没有解决我的问题,因为我想映射所有的musicbrainz艺术家和专辑,而且速度很慢.
使用MinGW32一台Windows PC,我试图编译在pySpotify.第一个错误libspotify/api.h就是缺失了.我固定从复制相应的文件夹这个libspotify成C:\MinGW\include.但是现在dllwrap现在失败了ld linking..二进制文件Spotify分发是libspotify.dll和libspotify.lib.无论我把它们放在哪里(pySpotify文件夹/子文件夹,临时构建文件夹/子文件夹和MinGW文件夹/子文件夹)或我命名它们(.a,.o和.so)它仍显示相同的错误消息.
相关的错误是:
C:\MinGW\bin\dllwrap.exe -mdll -static --output-lib build\temp.win32-2.7\Release\src\lib_spotify.a --def build\temp.win32-2.7\Release\src\_spotify.def -s build\temp.win32-2.7\Release\src\module.o build\temp.win32-2.7\Release\src\session.o build\temp.win32-2.7\Release\src\link.o build\temp.win32-2.7\Release\src\track.obuild\temp.win32-2.7\Release\src\album.o build\temp.win32-2.7\Release\src\albumbrowser.o build\temp.win32-2.7\Release\src\artist.o build\temp.win32-2.7\Release\src\artistbrowser.o build\temp.win32-2.7\Release\src\search.o build\temp.win32-2.7\Release\src\playlist.o build\temp.win32-2.7\Release\src\playlistcontainer.o build\temp.win32-2.7\Release\src\playlistfolder.o build\temp.win32-2.7\Release\src\image.o build\temp.win32-2.7\Release\src\user.o build\temp.win32-2.7\Release\src\pyspotify.o build\temp.win32-2.7\Release\src\toplistbrowser.o -LC:\Python26\libs -LC:\Python26\PCbuild -lspotify -lpython26 -lmsvcr90 -o build\lib.win32-2.7\spotify\_spotify.pyd
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot find -lspotify
collect2.exe: error: ld returned 1 exit status
dllwrap: gcc exited with status 1
error: command …Run Code Online (Sandbox Code Playgroud) 我使用Spotify Web API获取播放列表和用户跟踪列表.授权工作正常.我也得到了跟踪细节.但之后我想从spotify注销用户并允许新登录.在用户从spotify帐户自动注销之前有一段会话时间.但是用户可能没有耐心等待这么久,并尝试使用不同的spotify帐户.
是否有任何API可以从spotify注销用户.
可以做些什么.请帮忙.
我正在使用ruby on rails处理我的第一个应用程序,当我部署到Heroku时遇到了一些问题.当我在我的应用程序上登录Spotify时,我收到一条错误消息:
INVALID_CLIENT: Invalid redirect URI
在我的控制台中,错误如下:
Failed to load resource: the server responded with a status of 400 (Bad Request)
起初我认为这是我的客户端ID和密码的问题,因为我在本地遇到了类似的错误.所以我重新生成了新的,我仍然有同样的问题.
然后我注意到我的回调URI在回调网址中没有包含's',所以我添加了它并更改了我的Spotify应用页面上的回调,但我仍然收到相同的错误.
虽然我在Spotify的应用程序页面中更改了回调网址,但当我在我的应用程序中并尝试登录时,网址仍然不包含"s".
我是否遗漏了某些东西,或者Spotify结束时发生了什么?(我在本地运行此应用程序时没有此问题)
我想知道是否可以播放Spotify with Python(如果可能的话2.7版)的歌曲以及如何播放.
spotify ×10
javascript ×3
ios ×2
python ×2
api ×1
asynchronous ×1
browser ×1
c ×1
c# ×1
controls ×1
cpython ×1
heroku ×1
jquery ×1
musicbrainz ×1
python-2.7 ×1
swift ×1
utf-8 ×1