手游接入Facebook的那些坑

之前工作需要在手游中接入了facebook,并以此写了《手游接入Facebook功能》的博文。当时facebook sdk的版本还是3.x,代码集成度比较低,集成起来也比较麻烦。文中只是稍微提了下功能,然后扔了个github的demo链接,对一些细节问题没有描述。

之后公司里另外一个项目也有facebook的接入需求,并且由他们的运营方来具体实现,我们当时就facebook权限审核等问题讨论的比较频繁,以至于后来他们直接建了一个Facebook SDK开发群,不想后面常常有其他开发者搜索到这个群来交流问题。facebook sdk也更新了4.x版本(接口全变,但更优雅了。github上的demo,android版本已更新使用4.x sdk),感觉不少问题可以记录下来备忘,于是就有了本文。

1. 关于是否需要上传app给facebook审核:https://developers.facebook.com/docs/facebook-login/permissions/#noreview

a) 不需要审核的功能点:

使用FB进行第三方登录:Facebook Login

获取已登录FB账号的相关信息,权限:public_profile

获取已登录FB账号的同应用好友信息,权限:user_friends

使用FB应用邀请功能:App Invites

使用FB分享存文本或链接:Sharing

在设备上存在Facebook客户端的情况下,分享本地图片

b) 需要审核的功能点:

非测试账号,在设备上不存在Facebook客户端的情况下,直接通过FB API分享本地图片 权限:publish_actions

2. 关于FB审核:

FB审核和苹果审核相比,速度很快,经常一个工作日就给结果。但他们返回的错误说明太格式化,也比较简略。也许会让人感觉莫名所以。而且似乎没有申诉过程,对审核结果不满意只好说明写详细点再提交一次。

由于审核的是权限而不是app本身,也不通过FB来发行。我们可以针对审核出一个版本,反正到时候审核过了,真正上架的版本可以另出

a) 拒绝理由:我们无法在此平台上重现您所请求的功能的个性化体验。请提交使用此功能的应用版本,并附上详细的步骤指示。

由于FB的审核人员和苹果的审核不一样,他们大部分看不懂中文。

解决方案:步骤和描述最好用英文写的细致点,提交的配图也加上1.2.3的顺序,和足够的标注。

藏在比较深的功能,可以专门做一个审核版本,放在容易触发的地方。比如我原先分享截图是在战斗结束后分享,审核总是说顺利进行分享,最后我提交FB审核的版本直接在登录界面放了一个分享按钮,就解决这个问题了。

b) 拒绝理由:用户必须在用户消息字段输入所有内容

分享不能有预置内容。比如你试图在分享截图的时候,自动填充“XXX游戏真好玩,你也一起来玩吧”之类的话,审核有可能会驳回(那你SDK给这个接口干嘛……)

解决方案:同上,依然是出审核版本的时候别填充,正式版本暗度陈仓就是了……

c) 拒绝理由:这个权限你的应用莫须有。

比如:您的应用使用社交插件或分享对话框将内容分享至Facebook。这些操作不需要publish_actions权限,也不需要接受审核。

我遇到的情况是有分享截图的需求,申请publish_actions的时候遇到。这个其实是审核人员的考虑不周的问题。如上述审核功能点部分所说,如果用户的设备上没有FB app,那么分享本地文件是需要这个权限的。

解决方案:再次提交,且在重现步骤中强调,在一个没有安装FB app的设备中分享本地图片是需要权限的。还可以上传包含这个的截图(换成你自己在相应权限下的截图)给他看提高说服力,然后祈祷下次审核的人员能认真和专业点。

d) 拒绝理由:Your app must not use a Facebook Web Dialog.Utilize our native Facebook Login SDK for iOS, so that users do not need to login twice.

这个是一个比较坑爹的理由。因为第一句别用facebook web dialog,很容易让人误以为是任何情况下都不许用,但这不现实,因为没有FB app的情况下,你必须用到这个形式。其实真实的情况是:

你:说人话

FB:在设备上存在FB app的情况下,别用web dialog的形式让用户登录。

这样应该就理解了吧。

解决方案:检查在有FB app的情况下,调用登录接口时,会转向到FB app去登录(如果FB app是已登录状态则不需要再登录)。而不是弹出浏览器页面或者在应用内弹出窗口让用户输入密码。

在FB控制台,Settings页下把Single Sign On 开起来。

3. 疑难杂症

a) 用具有测试权限或更高权限的号可以登录,普通账号无法登录。

因为应用没有设置成对外可用的状态。

解决方案:去FB控制台,Status&Review分页下,把右上角“Do you want to make this app and all its live features available to the general public?”边上那个大大的开关设置成开的状态。

b) 集成代码貌似都加上了,但触发相关功能没效果或会闪退

一般是文档没读仔细还是有缺漏导致的。把两个版本的Getting Started一节再看看检查一遍。

android:AndroidManifest.xml里 FB相关的 provider/meta-data/activity 没加,或者没改成对应SDK版本的格式 (3.x/4.x的provider和activity的内容都略有变化

strings.xml 里 facebook_app_id 没加

iOS:plist 里面 FacebookAppID / FacebookDisplayName / URL types

application delegate 里面 applicationDidBecomeActive/didFinishLaunchingWithOptions/openURL 没添加响应的FB代码

c) 进入登录成功回调,有AccessToken,但Profile数据不正常

解决方案:先参考前面一点,看看是不是都加好了。

android:在获取到AccessToken后调用 Profile.fetchProfileForCurrentAccessToken();

iOS:添加 [FBSDKProfile enableUpdatesOnAccessTokenChange:YES];

d) 实现App Invite的时候提示App Link有问题

解决方案:这个Link必须去FB创建:https://developers.facebook.com/quickstarts/?platform=app-links-host

e) App Invite调用成功后对方收不到消息:

如果对方已经安装了这个应用,那么你得他的FB账号设置成测试者,才能再次收到消息。见官网说明Testing一节

参:http://stackoverflow.com/questions/29484815/fbsdkappinvitedialog-in-facebook-ios-sdk-version-4-0-1-invite-successfully-sent

4. 其他

a) 使用Graph API Explorer

可以比较方便的模拟数据来回,也可以用来清理权限。

b) 如果升级到iOS SDK 4.x,那么就不再支持iOS7以下的系统了,比如iOS6。这个得和运营商量好。

c) 写本文的时候,由于之前都没保存截图,所以用的基本都是群里或者私聊中别人的截图。发现他们的截图貌似都是中文的,而我当时自己遇到的审核错误提示貌似都是英文的

后面才发现官网页面最下方,FB官方可以选择一个查看页面的语言,部分页面有FB的官方翻译。英文苦手的可以考虑使用。

不过直接看英文可能会更好,因为不是所有的页面都有官方翻译版本,有的页面翻译可能是过期的,而且google的时候,通常用英文做关键词才方便从StackOverFlow找到有用的信息

5. 资源

a) FB官方的SDK源码和demo

https://github.com/facebook

https://github.com/facebookarchive

b) cocos2dx接入demo。 (FB SDK版本:Android 4.x/iOS 3.x)

https://github.com/piaopolar/FacebookPlugin/

c) FB SDK集成讨论QQ群:Facebook SDK开发 340348340

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-11 01:35:48

手游接入Facebook的那些坑的相关文章

手游接入Facebook功能

公司的手游准备先上海外平台,而海外玩家最倚重的社交平台之一就是facebook了.如果是单纯做分享,那么可以使用ShareSDK或者友盟的社会化分享组件.但若是需要FacebookSDK提供的更多功能,就需要自己实现了 我们希望实现的功能有: 1.   跨平台,接口都在C++上 2.   登录/登出/判断登陆状态 3.   游戏截图分享 4.   给好友发送请求 5.   取得自身信息,如id,名字 6.   取得好友信息,如id,名字,头像 7.   更多FacebookSDK提供的功能,查询

谈谈龙之谷手游兼容测试的一百个坑

一.项目背景 1. 高价值IP 龙之谷 ,一款优秀的端游移植到手游平台,凭借的丰富的游戏内容和优秀的游戏品质,公测首日便在畅销榜登顶,取得了巨大的成功.  游戏内容不仅继承了端游的内容,还根据手游操作方式以及平台特性进行了改进,使之更适合移动用户操作,界面分部也更加合理.  2.初期兼容性问题较多 龙之谷与其他游戏产品一样,版本初期暴露的兼容性问题很多,类似无法安装以及必现的CRASH等致命问题多次出现外,还存在着大量UI错位.资源加载异常.屏幕分辨率适应差等严重级别的兼容性问题.  二.定制测

手游服务器端接入facebook的SDK

手游如果支持facebook登录,就要接入facebook的登录SDK.刚好工作中自己做了这一块的接入功能现在记录分享下来提供一个参考. 当前只是接入了登录这个功能,先简单的说说接入facebook登录的一个流程.客户端通过玩家输入的用户名和密码向facebook发起登录的请求,请求登录如果成功那么就会返回一个token(口令).那么服务器这边就需要接收客户端发来的这个token,然后服务器端这边还需要一个access_token(这个token就是验证服务器端有没有权限访问facebook的A

TypeSDK免费手游多渠道SDK接入方案

摘要: TypeSDK,一个开源的统一手游渠道SDK接入框架,拥有80个海内外渠道,具备快速出包.分布式打包.分权限管理.产品数据打点等功能. 经历了头两年的爆发之后,手游也和端游.页游一样,进入了一个利润变薄.产业整合的过渡期.除了那些自有渠道的大厂商,如何找到新的用户来源始终是中小CP面临的最大问题,解决办法目前看来只有不断新接入渠道这一条.这就催生了一条新问题,接渠道也是一件非常耗时耗力的工作,里面各种危机暗藏.这就是为什么做了4年手游CP的星渠,转型去做统一渠道SDK接入框架--Type

Facebook的手游出海之道

对于不同的游戏公司,面临的同一个问题就是如何让海外玩家可以一眼在App中发现你,成为你的新用户:不仅如此,如何留住这些用户,让他们成为你游戏的忠实玩家也是让所有游戏开发商困扰的一个问题. Facebook携手香港品众 最近,香港品众携手Facebook在北京举行了"游戏"全球第一站,在这次手游成功出海之道活动上,嘉宾详细阐述了Facebook游戏平台的推广方案与玩家精准定位的技巧.接下来,Xsolla会给大家进行详细的介绍: 广告经营模式: 1.涂鸦墙 xsolla涂鸦墙 涂鸦墙是类似

手游客户端数据表接入随笔

手游在接入数据库表时需要考虑几个问题: 1.unity使用C#语言,数据表读取接口也需要使用C#语言: 2.基础组件库提供了excel到bin格式的转表工具,tdr组件支持将元数据格式转换为可读取bin格式数据的C#接口代码集,可以将数据表配表到读取的流程整理为 (1)程序建立excel表格和表格对应元数据结构xml文件: (2)策划在已经建立的excel表格中添加修改删除数据项: (3)程序配置convlist.xml文件,策划使用Resconv转表工具加载该配置文件对所选表格进行转表操作,生

暗黑黎明苹果快用手游账号97级亲王号脱坑甩卖

暗黑黎明苹果快用手游账号97级亲王号脱坑甩卖 商品描述: 绑定身份证:未绑定 绑定手机号:未绑定 绑定邮箱:未绑定 账号亮点: 人物职业: 刺客 人物等级: 97 VIP等级: V15 战斗力: 647万 钻石数量: 2500 竞技场排名: 38 佣兵人物: 佣兵排行60duo 装备描述: 5件粉色装备 账号亮点: 暗黑卡,月卡,军需卡,样样有,每天800砖石,价格便宜.

填坑:手游运维如何防用户流失

作为手游运营人,都知道手游运维也就是运营是一个漫长的过程,我们简单的将整个运营活动称之为是一个生命的周期.在这个繁琐而又紧凑的过程中,有很多的问题让做运营的同志们真的是头痛不已.最常见的就是用户流失问题,那真的就像是当初你玩微博的时候,上了个厕所回来发现掉了两个粉一样的感觉,那时候你真的都会怀疑是不是你上厕所的姿势不对. 那么如何才能够更好的防止用户流失就显得至关重要了,如果能够找到好的方法或是好的平台在防止用户流失的情况下还能够更好的吸引新的用户加入,那简直就是做运营的美梦啊.手游未来发展的大

建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞

作者:腾讯WeTest手游安全测试团队商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest导读 <九州天空城3D>上线至今,长期稳定在APP Store畅销排行的前五,本文将介绍腾讯WeTest手游安全团队在游戏上线前为<九州天空城3D>挖掘安全漏洞的全过程. <九州天空城3D>(下文简称<九州>)是祖龙娱乐的一款正版授权次世代3D飞行手游,在8月,正式向全平台开放.作为一个前身是端游研发工作室的研发商,祖龙娱乐在<九州>