Objective C:如何从网络浏览器获取访问令牌到 cocoa 应用程序?

Objective C: How to get access token from web browser to cocoa app?

请让我详细说明我要做什么。

我想做什么?

我正在创建一个 cocoa 应用程序,它将用户文件上传到用户的 Onedrive,为了做到这一点,我通过启动 访问令牌来请求访问令牌URLSafari.

https://login.live.com/oauth20_authorize.srf?client_id={APPLICATIONID}&scope=wl.signin+wl.offline_access+onedrive.readwrite&response_type=token&redirect_uri=https://login.live.com/oauth20_desktop.srf

问题

现在的问题是如何将访问令牌从 Safari 检索到我的 cocoa 应用程序?

简而言之:如何在Cocoa应用程序中获取一个驱动器访问令牌?

请帮忙。非常感谢

为了在本地应用程序上获取访问令牌,您需要按照以下步骤操作:

  1. 登录 dev.onedrive.com 并在 移动或桌面客户端应用程序 选项上勾选是
  2. 在您的应用程序中获取浏览器控件并加载访问令牌验证页面
  3. 为浏览器控件添加一个 URL 更改事件
  4. 每当你得到一个以 https://login.live.com/oauth20_desktop.srf 开头的 url 并且有一个 # 和 access_token 变量时,这意味着你的应用程序已经收到了来自用户的访问。
  5. 如果用户点击“否”(不提供访问权限),那么您将得到一个 url 以 https://login.live.com/oauth20_desktop.srf?lc=1033#error=access_denied
  6. 开头

注:思路很简单。您将需要监控 URL 变化并相应地执行任务。

P.S: 请记住,本地应用程序的重定向 URL 将是 https://login.live.com/oauth20_desktop.srf