我无法使用在 iOS 客户端上从后端服务获得的 token 继续 OAuth session 。具体来说,它看起来是一个权限问题:
iOS客户端获取访问 token (ObjC/FB iOS SDK v3.24)
使用以下权限建立的 session :
[FBSession openActiveSessionWithReadPermissions[
@"email",
@"user_about_me",
@"user_friends",
@"user_birthday",
@"public_profile" . . .
完成后。 . .
FBSession *session = [FBSession activeSession];
NSString *accessToken = [session.accessTokenData accessToken];
访问 token 发送到后端(即 Spring Boot + Kotlin)
一个Spring FacebookTemplate 使用上面得到的token实例化,如下:
@Test fun testFacebookTemplate()
{
val facebook = FacebookTemplate("$$TOKEN_FROM_FACEBOOK_IOS_SDK$$")
//Raises exception . .
val profile = facebook.userOperations().userProfile
println("rofile: " + profile)
}
iOS客户端建立的OAuth session 从后端成功继续,例如可以返回Facebook好友列表。但是,如上所示,尝试检索配置文件会引发错误:
问题:
- 缺少返回User的权限目的。这似乎没有记录在 Spring 的 FacebookTemplate 中。
- 这是在 OAuth 身份验证/授权期间(在我的情况下使用 FB iOS SDK)还是通过开发者控制台请求的?这对我来说不清楚,因为 openActiveSessionWithPermissions 和 Facebook 的 Web 控制台中的应用程序定义都包含对这些权限的引用。
Best Answer-推荐答案 strong>
在针对 Facebook Graph API v2.3 调用用户配置文件请求时,Spring 的 FacebookTemplate v2.0.2.RELEASE 似乎出现了一些权限相关的错误
作为一种变通方法使用:
val profile = facebook.fetchObject("me", User::class.java,
"id", "first_name", "last_name", "email");
关于java - Spring FacebookTemplate 引发用户配置文件的权限异常,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/33302582/
|