You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Android应用配置Spotify API重定向URI白名单?

解决Spotify API重定向URI白名单配置困惑

为什么Spotify需要重定向URI白名单?

和你之前对接的天气API不同,天气API是单向请求:你的应用主动发起请求获取数据,不需要第三方服务反向调用你的应用。而Spotify采用OAuth2.0授权机制,这是一套双向交互流程:

  1. 你的应用引导用户跳转到Spotify的授权页面完成授权操作
  2. 用户授权后,Spotify需要把授权凭证(比如授权码)传递回你的应用
    为了防止恶意网站冒充你的应用接收授权凭证,Spotify要求提前将可信的回调地址(重定向URI)加入白名单,仅名单内的地址能触发回调。

Android应用的重定向URI配置步骤

1. 在Spotify开发者后台配置白名单

  • 登录Spotify开发者控制台,找到你的目标应用
  • 进入「Settings」页面,在「Redirect URIs」区域添加自定义URI,建议采用应用包名前缀的自定义scheme,示例格式:com.your.app.package.spotify://callback
  • 保存修改,确保URI无空格、scheme和host格式规范

2. 在Android项目中配置Intent Filter

打开AndroidManifest.xml,找到用于处理授权回调的Activity(可为主Activity或专门的回调Activity),添加如下intent-filter:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- 此处配置需与Spotify后台填写的URI完全匹配 -->
    <data 
        android:scheme="com.your.app.package.spotify"
        android:host="callback" />
</intent-filter>

该配置会告诉Android系统:当收到指向com.your.app.package.spotify://callback的跳转请求时,启动当前Activity处理回调。

3. 在代码中处理回调数据

在配置了intent-filter的Activity中,重写onCreate或onNewIntent方法,获取回调URI并提取授权信息:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 处理首次启动的回调
    Uri callbackUri = getIntent().getData();
    if (callbackUri != null) {
        String authCode = callbackUri.getQueryParameter("code");
        // 用授权码换取访问令牌,完成后续授权流程
        handleAuthCode(authCode);
    }
}

// 应用在后台时,回调会触发此方法
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
    Uri callbackUri = intent.getData();
    if (callbackUri != null) {
        String authCode = callbackUri.getQueryParameter("code");
        handleAuthCode(authCode);
    }
}

关键注意事项

  • URI必须完全一致:Spotify后台填写的重定向URI和AndroidManifest中的data配置要完全匹配,包括大小写、scheme、host,哪怕多一个斜杠都会导致回调失败
  • 自定义scheme要独特:用应用包名作为scheme前缀,避免和其他应用的scheme冲突,防止跳转错误
  • 测试回调流程:配置完成后,完整走一遍授权流程,确认用户授权后能正确跳回应用并获取到授权码

内容的提问来源于stack exchange,提问作者MOA - CODES

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:27:17