【发布时间】:2015-02-16 19:30:42
【问题描述】:
我正在构建我的第一个 grails 应用程序并成功集成了以下所有插件:
目前,我可以单击“使用 Facebook 登录”按钮,并添加了一个 FacebookAuthService,它允许我获取用户名、电子邮件等,并且我正在使用“sec”标签库在屏幕上显示用户名.我的问题是关于如何获取用户的 Facebook 个人资料图片并将其显示到页面上。我已经翻遍了,找不到一个很好的例子。谁能提供一份?
我在 FacebookAuthService 中定义了以下方法:
FacebookUser create(FacebookAuthToken token) {
log.info("Create domain for facebook user $token.uid")
//Use Spring Social Facebook to load details for current user from Facebook API
Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
FacebookProfile fbProfile = facebook.userOperations().userProfile
String email = fbProfile.email
String username = fbProfile.username
String firstName = fbProfile.firstName
String lastName = fbProfile.lastName
User person = new User(
username: [firstName, lastName].join(' '),
password: token.accessToken.accessToken, //not really necessary
enabled: true,
accountExpired: false,
accountLocked: false,
passwordExpired: false,
//fill with data loaded from Facebook API
name: [firstName, lastName].join(' '),
email: email
)
person.save( flush : true)
person.validate()
println person.errors
UserRole.create(person, Role.findByAuthority('ROLE_USER'))
UserRole.create(person, Role.findByAuthority('ROLE_FACEBOOK'))
FacebookUser fbUser = new FacebookUser(
uid: token.uid,
accessToken: token.accessToken.accessToken,
accessTokenExpires: token.accessToken.expireAt,
user: person
)
fbUser.save()
return fbUser
}
【问题讨论】:
-
这是 Spring Social Facebook 的工作,我记得那很棘手,但找不到确切的代码
-
@Griffin,只是想知道您是否找到了解决此问题的方法。如果是,请发帖。谢谢。
标签: facebook spring grails grails-plugin spring-social