Android Spotify API:应用程序ID无效
我目前正在开发一款android应用程序,该应用程序正在实现Spotify API。我已经使用教程将我的应用程序连接到spotify的所有代码,并且已经在我的应用程序上工作了一段时间。当我在验证用户身份后通过我的应用程序播放歌曲时,它可以在我的模拟器上完美地工作。当我将它切换到手机时,它无法工作,并在android响应中给了我一个无效的应用程序ID错误。当我从手机上卸载spotify,然后尝试通过我的应用程序登录spotify时,我就可以在手机上播放音乐而不会出现任何崩溃。所以我的问题是如何解决这个问题?以下是我对用户进行身份验证的代码:Android Spotify API:应用程序ID无效,android,spotify,libspotify,Android,Spotify,Libspotify,我目前正在开发一款android应用程序,该应用程序正在实现Spotify API。我已经使用教程将我的应用程序连接到spotify的所有代码,并且已经在我的应用程序上工作了一段时间。当我在验证用户身份后通过我的应用程序播放歌曲时,它可以在我的模拟器上完美地工作。当我将它切换到手机时,它无法工作,并在android响应中给了我一个无效的应用程序ID错误。当我从手机上卸载spotify,然后尝试通过我的应用程序登录spotify时,我就可以在手机上播放音乐而不会出现任何崩溃。所以我的问题是如何解决
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
// Check if result comes from the correct activity
if (requestCode == requestcode) {
AuthenticationResponse response = AuthenticationClient.getResponse(resultCode, intent);
if (response.getType() == AuthenticationResponse.Type.TOKEN) {
Config playerConfig = new Config(this, response.getAccessToken(), client_id);
token = response.getAccessToken();
Spotify.getPlayer(playerConfig, this, new Player.InitializationObserver() {
@Override
public void onInitialized(Player player) {
mPlayer = player;
mPlayer.addConnectionStateCallback(.this);
mPlayer.addPlayerNotificationCallback(.this);
}
@Override
public void onError(Throwable throwable) {
Log.e("MainActivity", "Could not initialize player: " + throwable.getMessage());
}
});
}
}
}
您需要转到Spotify开发者设置并更新 安卓软件包 提供您的完整软件包名称,即
com.company.app
以及相应构建变体的SHA1指纹
您可以通过运行来获取指纹
./gradlew signingReport
您可以在那里找到调试的结果,例如debug
Variant: debug
Config: debug
Store: /Users/<your username>/.android/debug.keystore
Alias: AndroidDebugKey
MD5: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
SHA1: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
Valid until: Monday, August 29, 2046
变量:调试
配置:调试
Store:/Users//.android/debug.keystore
别名:AndroidDebugKey
MD5:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
SHA1:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
有效期至:2046年8月29日星期一
保存Spotify应用程序页面上的设置足以刷新系统,以便您可以从设备登录。Spotify在开发过程中需要调试SHA1。发布应用程序后,需要添加应用程序的版本SHA1,以及AndroidManifest中显示的包名。通过Spotify的仪表板在“Android软件包”部分为您的应用添加此功能 要了解发布APK的SHA1,首先需要在Android Studio中创建一个 然后确保将以下内容添加到应用程序的
build.gradle
:
android {
//...
signingConfigs {
release {
storeFile file('KEY_STORE_PATH_FOR_YOUR_APK')
storePassword 'YOUR_PW'
keyAlias 'YOUR_KEY_ALIAS'
keyPassword 'YOUR_KEY_PW'
}
}
buildTypes {
//...
release {
signingConfig signingConfigs.release
}
}
//...
}
这将允许您将发布和调试SHA1打印到您的Logcat中。在Android Studio中打开Gradle终端,并将signingReport
设置为命令行参数。单击OK
,值将被打印出来
为什么需要这样做
如果用户已安装Spotify应用程序并已登录,则无需再次登录您的应用程序。这将在后台使用需要SHA1的OAuth自动完成。如果未安装Spotify应用程序,则不需要SHA1,系统会提示用户登录您的应用程序。但是,如果用户安装了Spotify应用程序,则无法在应用程序中显示登录提示。。。因此,如果SHA1不可用,登录将失败。上述答案非常有用。然而,这是另一个让我抓狂的问题 作为发布管理流程的一部分,play store提供了管理发布密钥的功能。如果启用此功能,应用程序的SHA-1证书将在交付给用户之前被替换。您需要确保新密钥也已在spotify开发者控制台上注册
要查看新密钥,请打开google play store developers仪表板,然后单击“发布管理>应用程序签名”。您应该可以在此处查看密钥 这正是发生在我身上的事情。我会尽量按照指示把结果贴出来