Spotify API: INVALID_APP_ID

烂漫一生 提交于 2019-12-03 12:15:36

You need to go to your Spotify developer settings and update the

Android Packages

Providing your full package name i.e. com.company.app and the SHA1 fingerprint of the respective build variant.

You can get the fingerprint by running

./gradlew signingReport

There you can find the results for e.g. 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

Saving the settings on your Spotify app page is enough to flush the system so that you can login from your device.

The answers above were helpful. However, it was another issue that caught me out.

As part of it's release management process, the play store offers to manage release keys. If you enable this feature the SHA-1 certificate for the app is replaced before it is delivered to users. You need to make sure that the new key is also registered on the spotify developers console.

To view the new key, open the google play store developers dashboard, and then click 'Release management > App signing'. You should be able to view the key here.

Spotify requires the debug SHA1 during development. Once you release your app, you need to add the release SHA1 for your app, together with your package name as shown in the AndroidManifest. Add this via Spotify's Dashboard for your app in the "Android Packages" section.

To know the SHA1 for release APKs you first need to create a signed APK from within Android Studio.

Then make sure to add the following to your app's 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
        }
    }
    //...
}

This will allow you to print the release and debug SHA1's to your Logcat. From within Android Studio open the Gradle terminal and set signingReport as command line arg. Click OK and the value will be printed out.

Why is this needed?

When a user has already installed the Spotify app and is already logged in, there is no need to sign in the user again for your app. This will be done automatically in the background using OAuth which requires the SHA1. If the Spotify app is not installed, no SHA1 is needed and the user is prompted to login in your app instead. However, if the user has the Spotify app installed, there is no way to show the login prompt in your app ... hence, the login will fail if the SHA1 is not available.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!