我的iOS应用程序在注册过程中使用了Facebook的Graph API Request来获取用户信息,在升级到Facebook最新的SDK之前,它运行良好。升级后,出现运行时错误,指出:“ FBSDKLog:从Graph API v2.4开始,对/ me的GET请求应包含一个显式的“ fields”参数”。
这是代码:
func requestFacebook() { let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil) graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in if ((error) != nil) { // Process error println("Error: \(error)") } else if error == nil { let birthday : NSString = (result.valueForKey("birthday") as? NSString)! var currentDate = NSDate() var birthdayFormatter = NSDateFormatter() let userCalendar = NSCalendar.currentCalendar() birthdayFormatter.dateFormat = "MM/DD/YYYY" var birthdayNSDate = birthdayFormatter.dateFromString(birthday as String) var userAge = self.calculateAge(birthdayNSDate!) PFUser.currentUser()!["age"] = userAge var facebookID: NSString = (result.valueForKey("id") as? NSString)! var pictureURL = "https://graph.facebook.com/\(facebookID)/picture?type=large&return_ssl_resources=1" var URLRequest = NSURL(string: pictureURL) var URLRequestNeeded = NSURLRequest(URL: URLRequest!) NSURLConnection.sendAsynchronousRequest(URLRequestNeeded, queue: NSOperationQueue.mainQueue(), completionHandler: {(response: NSURLResponse!,data: NSData!, error: NSError!) -> Void in if error == nil { var picture = PFFile(data: data) PFUser.currentUser()!["picture"] = picture PFUser.currentUser()!.saveInBackgroundWithBlock({ (success, error) -> Void in if error == nil { var userPicture:PFFile = PFUser.currentUser()!.valueForKey("picture") as! PFFile userPicture.getDataInBackgroundWithBlock { (imageData, error) -> Void in if error == nil { self.meProfileImageView.image = UIImage(data: imageData!) var userName:String = PFUser.currentUser()!.valueForKey("username") as! String var userAge:Int = PFUser.currentUser()!.valueForKey("age") as! Int self.meLabel.text = "\(userName), \(userAge)" self.findFriends() } } } else { println(error) } }) } else { println("Error: \(error.localizedDescription)") } }) } }) }
错误消息在以下行:
let birthday : NSString = (result.valueForKey("birthday") as? NSString)!
在升级到Facebook的SDK v4.5.1之前,这段代码运行得非常好,但是我不知道现在要进行哪些更改才能使其正常工作。非常感谢任何可以帮助我的人!
该行需要一个非零的参数值
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
例如,我将进一步扩展,这是各种伪代码:
因此对于ObjC来说就是这样,因此上述内容应为以下内容:
parameters:@{@"fields": @"id, name"}
很快就会有类似的事情
像这样的东西:
parameters:["fields": "email"]
这仅用于两个字段,再次是伪代码,但是您需要指定参数
我添加此更新是为了向人们展示您在何处找到上述字段的参数,这是一个快速链接:
https://developers.facebook.com/docs/graph- api/reference/user
下面的信息格式如下,我只是很快地做到了:
“参数” “类型”
“描述”
id 数字字符串 此人的用户帐户的ID。该ID对于每个应用程序都是唯一的,不能在不同的应用程序之间使用。我们的升级指南提供了有关特定于应用的ID的更多信息 关于 字符串 此人的个人资料的“关于我”部分 age_range AgeRange 此人的年龄段表示为最小和最大年龄。例如,大于18,小于21。 生物 弦 这个人的简历 生日 串 这个人的生日。这是固定格式的字符串,例如MM / DD / YYYY。但是,人们可以控制谁可以看到他们的出生日期,而不是月份和日期,因此此字符串只能是年份(YYYY)或月份+日期(MM / DD) 上下文 UserContext 此人的社交环境 货币 货币 该人的当地货币信息 设备 清单 该人正在使用的设备列表。这只会返回iOS和Android设备 教育 清单 人的教育 电子邮件 字符串 该人的个人电子邮件地址列在其个人资料上。如果没有有效的电子邮件地址,则不会返回此字段 最喜欢的运动员 列表 运动员喜欢的人 favorite_teams 列表 人喜欢的运动队 first_name 字符串 该人的名字 性别 字符串 此人选择的性别,无论是男性还是女性。如果将性别设置为自定义值,则将忽略此值 家乡 页面 这个人的家乡 spirational_people 列表 这个人的鼓舞人心的人 install_type 枚举 安装类型 已安装的 布尔 发出请求的应用是否已安装? 兴趣 清单 该人感兴趣的性别 is_shared_login 布尔 这是共享登录名(例如,灰色用户)吗? is_verified 布尔 拥有大量追随者的人可以通过Facebook手动验证其身份的真实性。此字段指示是否以此方式验证了个人资料。这与已验证的字段不同 语言 清单 代表此人知道的语言的Facebook页面 last_name 字符串 该人的姓氏 连结 字串 到该人的时间表的链接 位置 页 他们在个人资料中输入的该人的当前位置。该字段与签到无关 语言环境 字符串 该人的语言环境 Meeting_for 列表 这个人有兴趣开会的目的 ** middle_name字符串 该人的中间名 名称 字符串 该人的全名 核心默认 name_format 字符串 该人的姓名格式正确处理了中文,日文或韩文的排序 payment_pricepoints 付款价格点 该人的付款价格点 test_group 无符号int32 平台测试组 政治 串 这个人的政治观点 relationship_status 字符串 人的关系状态 宗教 串 该人的宗教信仰 security_settings 安全设置 安全设定 有意义的 _其他用户 该人的重要他人 体育 清单 运动这个人喜欢 引号 字符串 该人的最爱报价 third_party_id 字符串 一个字符串,其中包含该人的匿名但唯一的标识符。您可以将此标识符与第三方一起使用 时区 浮动(最小值:-24)(最大值:24) 该人当前时区与UTC的偏移量 token_for_business 字符串 在企业的应用程序中相同的令牌。要访问此令牌,需要将该人登录到您的应用程序。如果拥有该应用的企业更改,则此令牌将更改 Updated_time datetime 更新时间 shared_login_upgrade_required_by datetime 共享登录需要通过以下时间升级到Business Manager的时间 经验证的 布尔 指示该帐户是否已通过验证。这与is_verified字段不同。如果有人采取以下任何措施,则认为该人已通过验证: Register for mobile Confirm their account via SMS Enter a valid credit card video_upload_limits VideoUploadLimits 视频上传限制 viewer_can_send_gift 布尔 观众可以向这个人发送礼物吗? 网站 字串 该人的网站 工作 清单 一个人的工作经历的细节 public_key 字符串 人的PGP公钥 封面 CoverPhoto
id 数字字符串
此人的用户帐户的ID。该ID对于每个应用程序都是唯一的,不能在不同的应用程序之间使用。我们的升级指南提供了有关特定于应用的ID的更多信息
关于 字符串
此人的个人资料的“关于我”部分
age_range AgeRange
此人的年龄段表示为最小和最大年龄。例如,大于18,小于21。
生物 弦
这个人的简历
生日 串
这个人的生日。这是固定格式的字符串,例如MM / DD / YYYY。但是,人们可以控制谁可以看到他们的出生日期,而不是月份和日期,因此此字符串只能是年份(YYYY)或月份+日期(MM / DD)
上下文 UserContext
此人的社交环境
货币 货币
该人的当地货币信息
设备 清单
该人正在使用的设备列表。这只会返回iOS和Android设备
教育 清单
人的教育
电子邮件 字符串
该人的个人电子邮件地址列在其个人资料上。如果没有有效的电子邮件地址,则不会返回此字段
最喜欢的运动员 列表
运动员喜欢的人
favorite_teams 列表
人喜欢的运动队
first_name 字符串
该人的名字
性别 字符串
此人选择的性别,无论是男性还是女性。如果将性别设置为自定义值,则将忽略此值
家乡 页面
这个人的家乡
spirational_people 列表
这个人的鼓舞人心的人
install_type 枚举
安装类型
已安装的 布尔
发出请求的应用是否已安装?
兴趣 清单
该人感兴趣的性别
is_shared_login 布尔
这是共享登录名(例如,灰色用户)吗?
is_verified 布尔
拥有大量追随者的人可以通过Facebook手动验证其身份的真实性。此字段指示是否以此方式验证了个人资料。这与已验证的字段不同
语言 清单
代表此人知道的语言的Facebook页面
last_name 字符串
该人的姓氏
连结 字串
到该人的时间表的链接
位置 页
他们在个人资料中输入的该人的当前位置。该字段与签到无关
语言环境 字符串
该人的语言环境
Meeting_for 列表
这个人有兴趣开会的目的
** middle_name字符串
该人的中间名
名称 字符串
该人的全名
核心默认
name_format 字符串
该人的姓名格式正确处理了中文,日文或韩文的排序
payment_pricepoints 付款价格点
该人的付款价格点
test_group 无符号int32
平台测试组
政治 串
这个人的政治观点
relationship_status 字符串
人的关系状态
宗教 串
该人的宗教信仰
security_settings 安全设置
安全设定
有意义的 _其他用户
该人的重要他人
体育 清单
运动这个人喜欢
引号 字符串
该人的最爱报价
third_party_id 字符串
一个字符串,其中包含该人的匿名但唯一的标识符。您可以将此标识符与第三方一起使用
时区 浮动(最小值:-24)(最大值:24)
该人当前时区与UTC的偏移量
token_for_business 字符串
在企业的应用程序中相同的令牌。要访问此令牌,需要将该人登录到您的应用程序。如果拥有该应用的企业更改,则此令牌将更改
Updated_time datetime
更新时间
shared_login_upgrade_required_by datetime
共享登录需要通过以下时间升级到Business Manager的时间
经验证的 布尔
指示该帐户是否已通过验证。这与is_verified字段不同。如果有人采取以下任何措施,则认为该人已通过验证:
Register for mobile Confirm their account via SMS Enter a valid credit card
video_upload_limits VideoUploadLimits
视频上传限制
viewer_can_send_gift 布尔
观众可以向这个人发送礼物吗?
网站 字串
该人的网站
工作 清单
一个人的工作经历的细节
public_key 字符串
人的PGP公钥
封面 CoverPhoto
“边缘”
favorite_requests 开发人员最喜欢的Graph API请求 request_history 开发人员的Graph API请求历史记录 帐目 此人管理的Facebook页面/是该用户的管理员 成就 Facebook游戏取得的成就 帐户 此人有权访问的广告帐户 adaccountgroups 广告帐户组 广告合同 该人的广告合同 admined_groups 对用户管理员进行分组 广告网络分析 该人的Audience Network应用的见解数据 专辑 此人创建的相册 要求 此人的某个应用程序的待处理请求 申请者的收件人 应用程式要求 图书 此人的个人资料上列出的书 域 用户管理的域 大事记 此人的活动。默认情况下,这不包括该人拒绝或未回复的事件 家庭 此人的家庭关系。 stream_filters 可以应用于新闻订阅源边缘的过滤器列表 朋友清单 此人的自定义朋友列表 ids_for_business 业务实体可以使用业务管理器声明对多个应用程序的所有权。此边缘返回该用户在任何其他应用程序中拥有的ID列表 invitable_friends 可以邀请安装Facebook Canvas应用程序的朋友列表 游戏 此人喜欢的游戏 团体 该人所属的Facebook群组 喜欢 此人顶过的所有页面 电影 此人喜欢的电影 音乐 这个人喜欢的音乐 对象 对象 权限 此人已授予此应用程序的权限 相片 该人被加了标签或已上传的照片 图片 该人的个人资料图片 agged_places 此人的加标签地点列表。它可以包含视频,帖子,状态或链接上的标签 promotable_domains 用户可以推广的所有域 promotable_events 用户可以推广的所有事件。 taggable_friends 可以在通过Graph API发布的内容中标记的朋友 电视 这个人喜欢的电视节目 影片 该人被标记或上传的视频 video_broadcasts 此人的视频广播 应用领域 此人是开发者的Facebook应用程序。 签到 此人进行的签到。 饲料 此人发布的帖子(包括状态更新)和链接的提要。 朋友请求 一个人的未决朋友请求。 朋友们 一个人的朋友。 家 一个人的Facebook主页提要。 收件箱 一个人的Facebook消息收件箱。 地点 包含位置信息且已在其中标记了此人的帖子和照片的供稿。这对于构造人去过的地方的时间顺序很有用。 共同的朋友 两人之间的共同朋友列表。 通知 一个人拥有的未读Facebook通知。 发件箱 一个人的Facebook消息发件箱。 问题 一个人提出的问题。 分数 此人从他们玩过的Facebook游戏中获得的分数。 订户 该人的个人资料。 订阅 The profile that this person is following.
favorite_requests
开发人员最喜欢的Graph API请求
request_history
开发人员的Graph API请求历史记录
帐目
此人管理的Facebook页面/是该用户的管理员
成就
Facebook游戏取得的成就
帐户
此人有权访问的广告帐户
adaccountgroups
广告帐户组
广告合同
该人的广告合同
admined_groups
对用户管理员进行分组
广告网络分析
该人的Audience Network应用的见解数据
专辑
此人创建的相册
要求
此人的某个应用程序的待处理请求
申请者的收件人
应用程式要求
图书
此人的个人资料上列出的书
域
用户管理的域
大事记
此人的活动。默认情况下,这不包括该人拒绝或未回复的事件
家庭
此人的家庭关系。
stream_filters
可以应用于新闻订阅源边缘的过滤器列表
朋友清单
此人的自定义朋友列表
ids_for_business
业务实体可以使用业务管理器声明对多个应用程序的所有权。此边缘返回该用户在任何其他应用程序中拥有的ID列表
invitable_friends
可以邀请安装Facebook Canvas应用程序的朋友列表
游戏
此人喜欢的游戏
团体
该人所属的Facebook群组
喜欢
此人顶过的所有页面
电影
此人喜欢的电影
音乐
这个人喜欢的音乐
对象
权限
此人已授予此应用程序的权限
相片
该人被加了标签或已上传的照片
图片
该人的个人资料图片
agged_places
此人的加标签地点列表。它可以包含视频,帖子,状态或链接上的标签
promotable_domains
用户可以推广的所有域
promotable_events
用户可以推广的所有事件。
taggable_friends
可以在通过Graph API发布的内容中标记的朋友
电视
这个人喜欢的电视节目
影片
该人被标记或上传的视频
video_broadcasts
此人的视频广播
应用领域
此人是开发者的Facebook应用程序。
签到
此人进行的签到。
饲料
此人发布的帖子(包括状态更新)和链接的提要。
朋友请求
一个人的未决朋友请求。
朋友们
一个人的朋友。
家
一个人的Facebook主页提要。
收件箱
一个人的Facebook消息收件箱。
地点
包含位置信息且已在其中标记了此人的帖子和照片的供稿。这对于构造人去过的地方的时间顺序很有用。
共同的朋友
两人之间的共同朋友列表。
通知
一个人拥有的未读Facebook通知。
发件箱
一个人的Facebook消息发件箱。
问题
一个人提出的问题。
分数
此人从他们玩过的Facebook游戏中获得的分数。
订户
该人的个人资料。
订阅
The profile that this person is following.