我想连接到 LinkedIn 并通过他们的 API 提取一些信息。LinkedIn API 使用 OAuth 2.0。
我读过的所有关于 OAuth 的文档(无论是在 LinkedIn 的上下文中还是在一般情况下)似乎都假设存在一个以弹出窗口形式授予访问权限的用户界面。
但是,就我而言,我只想通过没有用户界面的命令行应用程序导出数据。我真正在寻找的是一种简单的方法来进行身份验证,而不是授权。连接凭据将位于配置文件中。
OAuth 是我想要/需要的,还是我真的在寻找其他东西?
OAuth 是我想要/需要的,还是我真的在寻找其他东西?
这取决于您主要与之交互的 API。看起来 LinkedIn 仅适用于 OAuth2(和 1,但已被弃用)。所以你别无选择。
OAuth 的设计考虑了委托。谁拥有您想从 LinkedIn 中提取的信息?UI 流程的目的是让数据所有者同意将其提供给第三方(您的应用程序)。通常带有特定的scope
(例如访问个人资料、网络、联系人等)。信息的所有者验证并授权向第三方(您的应用程序)披露信息。您的应用程序也向 LinkedIn 进行身份验证(作为注册应用程序),然后您调用 API。
refresh_tokens
是一种无需每次都征求用户同意即可请求新令牌的工具。这些是可以存储的相对长寿的实体(并且可以由用户随时撤销)。
如果它是您的数据(您既是所有者又是第 3 方应用程序),您可以使用初始身份验证/授权来引导您的命令行进程,然后您将使用 保持它运行access_token/refresh_token
,直到刷新令牌过期。
一些系统(不太可能是 LinkedIn)支持所谓的资源所有者流程。您可以在其中获取access_token
通过凭据(用户/密码)。但是没有人可能会放弃他们的凭据给您的应用程序。(一个例外是当你们俩都像我上面写的那样)。