gpt4 book ai didi

ios - 获取 xmpp_login 访问 token 在 Facebook iOS SDK 中不起作用

转载 作者:行者123 更新时间:2023-12-02 03:51:28 27 4
gpt4 key购买 nike

<小时/>

我正在尝试获取有效的 accessToken,以便从我的 iOS 应用程序通过 XMPP 发送消息。

我正在使用这个库( https://github.com/KanybekMomukeyev/FacebookChat ),一切似乎都运行良好,但它使用旧的 xmpp 库和旧的 Facebook sdk。

在我的应用中,我使用最新的 Facebook SDK,为了获得 xmpp_login 权限,我执行以下操作:

[FBSession openActiveSessionWithReadPermissions:@[@"xmpp_login"] allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
...
}];

我没有收到任何错误,但当我尝试将生成的 accessToken 与 xmpp 库一起使用时,我继续收到无身份验证错误

经过深入研究,我最终检查了 facebook 在新 SDK(我的应用程序)和旧 SDK(Facebook 聊天)中用于请求 token 的 URL。

我的:

https://m.facebook.com/v2.0/dialog/oauth?sdk_version=3.15.0&response_type=token&return_scopes=true&legacy_override=v2.0&e2e={"init":1404191289978}&scope=xmpp_login&client_id=274849106003593&state ={"is_open_session":true,"is_active_session":true,"com.facebook.sdk_client_state":true,"3_method":"browser_auth","0_auth_logger_id":"72796574-5B5C-4EF3-9B0B-F9AC376E2DC4"}&redirect_uri= fb274849106003593://authorize&sdk=ios&display=touch

他们:

https://m.facebook.com/dialog/oauth?type=user_agent&display=touch&redirect_uri=fb274849106003593://authorize&sdk=ios&scope=xmpp_login&client_id=274849106003593

我不太确定为什么一个有效而另一个无效,在这两种情况下我都会获得 accessToken,但如果我使用第一个 URL 请求,XMPP 不会进行身份验证。

有谁知道为什么会发生这种情况或者权限中还需要包含什么内容?

PS:顺便说一句,如果您尝试第二个(旧方式)URL,则任何后续请求都将有效,直到 token 过期。

最佳答案

根据 Facebook ( https://developers.facebook.com/docs/apps/changelog ) 的说法,他们的 API v2.0 删除了对 xmpp_login 权限的访问,这就是它不起作用的原因。

一个快速解决方法是强制较新的 SDK 使用 API v1.0。

[FBSettings enablePlatformCompatibility:YES];

API v1.0 将于 2015 年 4 月 15 日之前可用,Facebook 声明如下:

处于非事件状态或创建日期在 2014 年 4 月 30 日或之后的应用程序将无法调用 API v1.0。他们必须使用 v2.0。

所以 xmpp 不再是一个可行的解决方案。

关于ios - 获取 xmpp_login 访问 token 在 Facebook iOS SDK 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24503064/

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