如果用户在登录后更改他的Facebook个人资料详细信息,如何更新我的应用程序中的Facebook个人资料?
问题描述:
我有一个应用程序需要用户通过Facebook登录。在获得诸如用户名,电子邮件ID,个人资料照片等公共详细信息之后,“我的个人资料”页面中的应用程序中会显示相同的内容如果用户在登录后更改他的Facebook个人资料详细信息,如何更新我的应用程序中的Facebook个人资料?
一切工作正常。但情况
假设用户通过 Facebook在客户端应用程序登录后修改通过Facebook网站或通过Facebook应用程序在他的Facebook用户名。
新用户名将如何反映在他的“我的个人资料”页面中,因为它 将显示相同的旧用户名? Facebook SDK是否提供 当我们转到 “我的档案”页面时自动接收公开详情的方法?
答
正如你已经与登录部分完成,现在请在ViewDidAppear()
这个函数来获取用户信息:
func GetUserInfo(completionHandler handler: @escaping(_ response: [String: Any]) -> Void) {
if((FBSDKAccessToken.current()) != nil) { //If you have a valid Access token
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start(completionHandler: { (connection, result, error) -> Void in
if (error == nil) {
//everything works fine print the user data
print(result ?? AnyObject.self)
//Here you can get any type of information of user
if let jsondata = result as? [String: Any], let strEmail = jsondata["email"] as? String, let fb_id = jsondata["id"] as? String, let picture = jsondata["picture"] as? [String: Any], let data = picture["data"] as? [String: Any],let url = data["url"] as? String {
print(url)
print(strEmail)
print(fb_id)
handler(jsondata) //Pass the data in the completion Handler
}
} else {
//failure popup
}
})
}
}
我认为你必须创建一个函数并调用在ViewDidAppear函数() 。该功能将从facebook图形API获取用户信息。 –
@AuuragSharma是的,它很清楚。但请告诉我们必须在ViewDidAppear中调用哪种方法?请发表一个答案,我一定会支持它。 –