認証目的でSpring Security Core Pluginを使用し、Facebook ログイン目的で Spring Security の Facebook 認証を使用しています。私の FB ログインは、Spring Security Plugin で正常に動作します。しかし、私はそれについていくつかの問題を抱えています。Facebook ユーザーの UserName、Email、phoneno などを取得して、自分のデータベースに保存するにはどうすればよいですか。
これが私のSpring Security Core Person.groovy Domain Classファイルです...
class Person {
transient springSecurityService
String realName
String username
String password
boolean enabled
boolean accountExpired
boolean accountLocked
boolean passwordExpired
byte[] avatar
String avatarType
...... more code ...........
}
ここで、realName (Facebook ユーザー名を保存するため)、avatar (Facebook ユーザー プロファイル画像を保存するため) などのフィールドをいくつか追加したことがわかります。現在、ユーザー名はこのように保存されていfacebook_100003641451723
ます。realName フィールドに保存できるように、ユーザーの本名が必要です。どうすればこれを行うことができますか??
アップデート :
スプリングセキュリティを使用したGrails Facebook Login - ログインユーザー名を知る方法が1つ見つかりました
しかし、このコードをどこに置いたのかわかりません...
void onCreate(FacebookUser user, FacebookAuthToken token) {
Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
FacebookProfile fbProfile = facebook.userOperations().userProfile
//fill the name
//fieldname ('fullname' at this example) is up to you
user.realName = fbProfile.name
}
アップデート :
これで、実行して新しいサービスを作成grails create-service FacebookAuthService
し、FacebookAuthService.groovy が services/groovypublish/FacebookAuthService.groovy 内に作成されました。
ここに私の FacebookAuthService.groovy ファイルがあります..
package groovypublish
import org.grails.twitter.Person
import com.the6hours.grails.springsecurity.facebook.FacebookAuthToken
class FacebookAuthService {
def serviceMethod() {
}
void onCreate(Person user, FacebookAuthToken token) {
Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
FacebookProfile fbProfile = facebook.userOperations().userProfile
//fill the name
//fieldname ('fullname' at this example) is up to you
user.realName = fbProfile.name
}
}
BuildConfig.groovy ファイルに依存関係を配置します ....
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
runtime 'mysql:mysql-connector-java:5.1.22'
compile 'org.springframework.social:spring-social-core:1.0.1.RELEASE'
compile 'org.springframework.social:spring-social-facebook:1.0.1.RELEASE'
}
今、grailsアプリケーションを起動grails run-app
するとエラーが表示されます
C:\Users\Shreshtt\workspace\groovypublish\grails-app\services\groovypublish\FacebookAuthService.groovy: 14: unable to resolve class Facebook @ line 14, column 12.
Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
^
C:\Users\Shreshtt\workspace\groovypublish\grails-app\services\groovypublish\FacebookAuthService.groovy: 14: unable to resolve class FacebookTemplate @ line 14, column 23.
Facebook facebook = new FacebookTemplate(token.accessToken.accessToken)
^
C:\Users\Shreshtt\workspace\groovypublish\grails-app\services\groovypublish\FacebookAuthService.groovy: 15: unable to resolve class FacebookProfile @ line 15, column 19.
FacebookProfile fbProfile = facebook.userOperations().userProfile
^
3 errors