iOS Facebook SDK:迁移到新版本的问题

Posted

技术标签:

【中文标题】iOS Facebook SDK:迁移到新版本的问题【英文标题】:iOS Facebook SDK: migration to new version problems 【发布时间】:2017-06-13 12:37:42 【问题描述】:

我有一个使用FacebookSdk 的旧应用程序。我想将此sdk 迁移到版本4.17。问题是这个新版本已经删除了许多类。我想知道FBSession, FBSessionState, FBFriendPickerViewController, FBCacheDescriptorFBGraphUser 的等价物是什么。

我使用FBGraphUser获取用户信息,例如他的id, name...FBSession:为了检查是否有session,我还通过FBSessionState检查了会话的状态。

我搜索了这个问题,我发现对于用户信息我可以使用这个:

[[[FBSDKGraphRequest alloc] initWithGraphpath:@"me" parameters:@@"fields": @"email"]
    startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) 
      if (!error) 
         NSLog(@”fetched user:%@”, result);
      
  ]; 

但我真的对parameters 感到困惑。我可以提出的所有价值观是什么?

对于FBSession,我发现我可以检查是否有会话使用:

[FBSDKAccessToken currentAccessToken]

但是我如何检查状态 FBSessionStateOpen, FBSessionStateClosed, FBSessionStateClosedLoginFailed

那么FBFriendPickerViewController, FBCacheDescriptor 呢?

【问题讨论】:

【参考方案1】:

这是 Paramters 字段信息(对于 FBSDK,这应该大致保持不变,其中一些是“核心”,这意味着它不会真正改变那么多,但我会随时更新):

https://developers.facebook.com/docs/graph-api/reference/user

下面的信息格式如下,有点,我只是很快地这样做了:

“参数” “类型”

“描述”

id 数字字符串

此人的用户帐户的 ID。此 ID 对每个应用程序都是唯一的 并且不能跨不同的应用程序使用。我们的升级指南提供 有关应用特定 ID 的更多信息

关于字符串

此人个人资料的“关于我”部分

年龄范围年龄范围

此人的年龄段表示为最小值和最大值 年龄。例如,大于 18,小于 21。

简介字符串

个人简介

生日字符串

这个人的生日。这是一个固定格式的字符串,如 MM/DD/YYYY。 但是,人们可以控制谁可以看到他们的出生年份 与月份和日期分开,所以这个字符串只能是年份 (YYYY) 或月 + 日 (MM/DD)

上下文用户上下文

此人的社会背景

货币货币

此人的当地货币信息

设备列表

此人正在使用的设备列表。这将只返回 ios 和 安卓设备

教育列表

人的教育

电子邮件字符串

个人资料中列出的此人的主要电子邮件地址。这个领域 如果没有可用的有效电子邮件地址,将不会被退回

favorite_athletes列表

该人喜欢的运动员

favorite_teams 列表

这个人喜欢的运动队

名字字符串

这个人的名字

性别字符串

此人选择的性别,男性或女性。这个值将是 如果将性别设置为自定义值,则省略

家乡页面

这个人的家乡

inspirational_people列表

鼓舞人心的人

install_type 枚举

安装类型

已安装 bool

发出请求的应用程序是否已安装?

有兴趣的人列表

此人感兴趣的性别

is_shared_login bool

这是共享登录(例如灰色用户)

is_verified布尔型

拥有大量追随者的人可以具有真实性 他们的身份由 Facebook 手动验证。该字段表示 是否以这种方式验证此人的个人资料。这是与众不同的 来自经过验证的字段

语言列表

代表此人知道的语言的 Facebook 页面

姓氏字符串

这个人的姓

链接字符串

人的时间线的链接

位置页面

此人在个人资料中输入的当前位置。 该字段与签到无关

语言环境字符串

此人的语言环境

meeting_for列表

这个人有兴趣开会

**middle_name 字符串

这个人的中间名

名称字符串

此人的全名

核心默认

name_format 字符串

人名的格式可以正确处理中文、日文或 韩国订购

payment_pricepoints PaymentPricepoints

此人的付款价格点

test_group unsigned int32

平台测试组

政治字符串

这个人的政治观点

relationship_status 字符串

此人的关系状况

宗教字符串

这个人的宗教信仰

security_settings 安全设置

安全设置

significant_other用户

这个人的另一半

运动列表

这个人喜欢的运动

引号字符串

这个人最喜欢的名言

third_party_id 字符串

一个包含匿名但唯一标识符的字符串 人。您可以将此标识符用于第三方

时区浮动(最小值:-24)(最大值:24)

此人当前时区与 UTC 的偏移量

token_for_business 字符串

在企业应用程序中相同的令牌。访问这个 令牌要求此人登录到您的应用程序。这个令牌 如果拥有该应用的企业发生变化,将会发生变化

updated_time 日期时间

更新时间

shared_login_upgrade_required_by日期时间

共享登录需要升级到商务管家的时间 由

已验证 bool

表示帐户是否已通过验证。这不同于 is_verified 字段。如果某人采取任何 以下操作:

Register for mobile
Confirm their account via SMS
Enter a valid credit card

video_upload_limits VideoUploadLimits

视频上传限制

viewer_can_send_gift bool

观众可以给这个人送礼物吗?

网站字符串

此人的网站

工作清单

一个人的工作经历的细节

public_key 字符串

此人的 PGP 公钥

封面封面照片


此外,这是当前的“Edge”内容:“Edge”内容的格式大致是这样的,我很快就做到了:

“边缘”

“说明”

favorite_requests

开发者最喜欢的 Graph API 请求

request_history

开发者的 Graph API 请求历史

帐户

此人管理/是其管理员的 Facebook 主页

成就

在 Facebook 游戏中取得的成就

广告帐户

此人有权访问的广告帐户

广告帐户组

广告帐户组

广告合同

此人的广告合同

admined_groups

将用户管理员分组

广告网络分析

此人的 Audience Network 应用的洞察数据

专辑

此人创建的相册

应用程序

此人来自应用的待处理请求

apprequestformerrecipients

应用请求

书籍

此人的个人资料中列出的书籍

用户管理的域

事件

此人的事件。默认情况下,这不包括事件 此人已拒绝或未回复

家庭

此人的家庭关系。

stream_filters

可应用于动态消息边缘的过滤器列表

好友列表

此人的自定义好友列表

ids_for_business

企业实体可以使用 业务经理。此边返回此用户拥有的 ID 列表 在任何其他应用中

invitable_friends

可受邀安装 Facebook Canvas 应用的好友列表

游戏

此人喜欢的游戏

群组

此人所属的 Facebook 群组

点赞

此人喜欢的所有页面

电影

此人喜欢的电影

音乐

此人喜欢的音乐

对象

对象

权限

此人授予此应用的权限

照片

此人被标记或已上传的照片

图片

此人的个人资料图片

tagged_places

此人的已标记地点列表。它可以包括视频标签, 帖子、状态或链接

promotable_domains

用户可以推广的所有域

promotable_events

用户可以推广的所有事件。

taggable_friends

可以在通过 Graph API 发布的内容中标记的朋友

电视

此人喜欢的电视节目

视频

此人被标记或上传的视频

video_broadcasts

来自此人的视频广播

应用程序

此人开发的 Facebook 应用。

签到

此人进行的签到。

饲料

帖子的提要(包括状态更新)和链接发布者 这个人。

好友请求

一个人的待处理好友请求。

朋友

一个人的朋友。

首页

一个人的 Facebook 主页提要。

收件箱

某人的 Facebook 消息收件箱。

位置

包含位置信息的帖子和照片的提要 此人已被标记。这对于构建一个有用的 该人去过的地方的年表。

共同的朋友

两个人的共同好友列表。

通知

一个人拥有的未读 Facebook 通知。

发件箱

某人的 Facebook 消息发件箱。

问题

一个人提出的问题。

分数

此人从 Facebook Games 获得的分数 玩过。

订阅者

关注此人的个人资料。

订阅

此人关注的个人资料。

【讨论】:

谢谢,但是如何查看会话状态? 如果我将nil传递给parameters,我会得到所有的用户信息吗? 不,Facebook 很严格,他们是新的第三帝国,而不是特朗普 所以我必须将所有我想要的参数名称放在参数字段中。这就是你想说的吗?

以上是关于iOS Facebook SDK:迁移到新版本的问题的主要内容,如果未能解决你的问题,请参考以下文章

将 grafana 迁移到较新版本的最佳方法是啥? [关闭]

Facebook UNITY SDK 登录问题

使用Minio Clinet将老版本Minio的数据迁移到新版本的Minio

Facebook sdk 3.0 与 iOS 5 和 Xcode 4.2

Facebook iOS SDK 导致崩溃

RXJS 6:新版本的 HttpInterceptor