gpt4 book ai didi

c++ - 通过浏览器授权

转载 作者:可可西里 更新时间:2023-11-01 16:38:40 28 4
gpt4 key购买 nike

我正在尝试编写一个将与 Last.fm API 交互的应用程序,但我遇到了困难。我的问题与授权有关。来自 Last.fm API 网站的引述:

Your application needs to open an instance of a web browser and send the user to last.fm/api/auth with your API key and authentication token as parameters. Use an HTTP GET request.

我知道如何发送 GET 请求以及如何打开带有指定 URL 的浏览器。但是,当用户在浏览器中批准或不批准授权时,如何实现此功能并捕获我的应用程序事件?也许我应该使用 HTTP GET 15 秒,如果我没有收到用户名,我应该要求用户再次执行授权。这是正确的方法吗?

最佳答案

有点意思。说明书说的好像很简单,其实这是个难题,连Last.fm自己的liblastfm C++ library都没有出现。为与服务交互提供了解决方案。

按照难度递增的顺序,一些方法包括:

  • 打开默认 Web 浏览器访问 URL,并显示一个按钮供用户在授权应用程序后单击。

    优点:简单

    缺点:用户体验差。您需要确保有明确的说明供用户遵循,以免他或她感到困惑。此外,用户可能会认为您的应用已损坏,因为“他们已经授权了您的应用!”,直到他或她按下按钮才意识到您的应用不知道这一点。

  • 打开默认 Web 浏览器访问 URL,显示不确定的“等待来自 Last.fm 的授权”消息,并轮询 auth.getSession方法 API 每 15 秒左右调用一次,以查看用户是否已授权您的应用程序。也许还提供一个“立即检查”按钮。

    优点:简单且用户体验不那么差。

    缺点:API 似乎没有提供表示用户拒绝授权的错误代码。您可能不知道用户是否曾经授权过您的应用程序,并且您可能会永远等待授权。此外,我不知道 auth.getSession 调用是否有限制,但您可能会遇到速率限制问题。

  • 在您的应用程序中嵌入网络浏览器。您可以完全控制它,并且设置事件处理程序应该很简单。

    优点:无需轮询,因为应用程序会在用户提交表单时收到通知。

    缺点:用户界面可能会让一些用户感到困惑。

  • 向操作系统注册自定义 URI 方案并使用 Last.fm 的 instructions for authorizing web applications .

    想法是注册一个 URI 方案(也称为应用程序协议(protocol);例如 myApp://)并使用自定义方案指定一个回调 URL(例如 myApp://lastFmAuthorizationCallback)。

    参见:

  • (特定于平台)自动化网络浏览器。执行此操作的确切方法取决于 Web 浏览器和平台。

    优点:可以是无缝的。如果做得好,应该提供出色的用户体验。

    缺点:开发起来很棘手,自动化可能会随着浏览器的升级而中断。

关于c++ - 通过浏览器授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663165/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com