【问题标题】:Spotify Web API - Authenticate user via native mobile app rather than browser?Spotify Web API - 通过本机移动应用程序而不是浏览器对用户进行身份验证?
【发布时间】:2018-11-12 06:04:03
【问题描述】:

我正在测试以下示例,通过登录并重定向到身份验证屏幕来验证用户身份 - 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();
  }
})();

在移动设备上尝试时,它将在 Safari 中打开一个新标签。是否可以检查应用程序是否安装在 iOS 上并通过该应用程序登录?将使过程更快。

正如这里的一个问题所见,它似乎已解决,但无法理解是什么触发了它这样做? - https://github.com/spotify/web-api/issues/718

谢谢!

【问题讨论】:

  • 不幸的是,无法检查应用程序是否安装了 iOS,曾经有一些变通方法但大多数不再有效,这是由于隐私问题导致广告公司无法识别和指纹识别用户.
  • 我认为如果安装了应用程序并且您打开了正确的链接,这些链接是由Spotify app 实现的通用链接,那么它应该启动应用程序。我怀疑登录链接是通用链接,它应该会打开 Spotify 应用程序。
  • 如果 URI 以 spotify:// 而不是 https:// 开头,则设备将打开相应的应用程序。这适用于任何桌面和安卓设备。我不能告诉iOS,而且链接参数也不同,我猜。因此这不是 Spotify 本身的问题,因为浏览器可以使用 HTTP 协议来满足请求。
  • 我使用 Spotify API 已经有一段时间了,但我还没有看到这是可能的。我又看了看,Spotify 应用程序目前似乎不支持此功能。 developer.spotify.com/documentation/general/guides/… 根据我的经验,Spotify API 非常有限,而且似乎过时了,即使在今天,官方应用程序中也缺少许多可用的新功能。

标签: javascript ios spotify


【解决方案1】:

总结一下这里是一个汇总的答案:

  • iOS 不允许查看您的设备上安装了哪些应用,Android 也不允许。
  • 使用universal links(Android 和 iOS 都可以),一般来说您可能会生成一个打开应用程序的链接,但为此,相应的应用程序需要在您的设备上注册此连接。
  • 尤其是对于 Spotify,我认为 Spotify 应用程序没有注册这样的链接。原生应用仅触发身份验证并不常见,因此 Spotify 不太可能这样做。

【讨论】:

    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 2011-06-19
    • 2020-07-24
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多