首先,我不寻找facebook帐户的访问令牌。
我(或我的facebook messenger bot)需要链接的第三方帐户的访问令牌 该帐户已按照此处所述成功关联:https://developers.facebook.com/docs/messenger-platform/identity/account-linking
稍微偏离主题:我发现第一个不符合OIDC / OAuth2规范的问题是,给予 / authorize 端点的重定向URI 需要一个参数使用实际的授权代码“ authorization_code ”而不是“code”。好的,好的我们不使用IdP的现成软件,所以我可以修复它。爱好。
现在,我已经习惯了亚马逊Alexa帐户链接,让亚马逊进行令牌管理,刷新等,并在每次请求时提供第三方访问令牌。
但似乎没有Facebook。据我所知(不是通过文档,而是通过尝试和错误),对于Facebook Messenger,帐户链接在获得授权代码(并调用关联的webhook)后即可完成。 但是因为对于我的机器人的每个请求我都需要一个实际的访问令牌,所以这不会有太多帮助。
现在看起来好像我必须将我的机器人扩展为一个完整但非标准化的OAauth2 / OIDC客户端(包括令牌处理,刷新等)以及一些问题:
我现在的问题是,当我的目标是为OAuth / OIDC IdP使用标准化软件时,如何应对这种行为?有什么想法吗?
提前致谢 托马斯
修改 澄清“帐户链接”的含义:我对用户的Facebook帐户不感兴趣,我想访问该用户的第三方帐户(由我的实际服务提供)的信息。 例如,“我的tumblr帐户中有多少张图片”这样的调用将需要客户将tumblr帐户链接到此facebook messenger机器人。
为了进行比较:亚马逊的Alexa和Google Actions非常顺利。我只需输入客户端凭据和OAuth端点就可以了。如果用户成功链接了第三方帐户,我会按预期为每个查询获得一个访问令牌。
EDIT2:正如CBroe指出的那样,Facebook不支持这一点。实际上只能“链接”用户ID。