使用友盟分享到FaceBook总结

因为之前只需要分享到QQ/微信/新浪等,这些直接按照友盟的文档来写就行了。但是分享FaceBook的话有所不同,会遇到各种各样的问题,被狠狠折腾了一番。

本来想从头到尾写完整版的,又一想到自己去百度/谷歌搜索都是这样的文章。基础的东西都是差不多的,实在没什么必要。所以我就写一些我认为很重要的东西吧。

一. 设置Facebook的appKey和UrlString

[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Facebook appKey:@"506027402887373"  appSecret:nil redirectURL:@"http://www.umeng.com/social"];

这里注意不需要秘钥Secret,url填写为你在FaceBook里边填写的那个就可以了。

二. 除配置URL Scheme外,Facebook SDK还要求在info.plist文件中加入FacebookAppID和FacebookDisplayName两项参数
 配置info.plist

*   除配置URL Scheme外,Facebook SDK还要求在info.plist文件中加入两项参数,分别是:
    *   FacebookAppID
    *   FacebookDisplayName
*   以上参数值是在Facebook开发者平台[https://developers.facebook.com/apps](https://developers.facebook.com/apps) 设置并获取对应的`AppID`和`Display Name`
*   如U-Share Demo的测试AppID为506027402887373, Display Name为UmengShare。则加入两项参数为
    *   FacebookAppID : 506027402887373
    *   FacebookDisplayName : UmengShare

 U-Share 6.9.3更新Facebook说明

Facebook SDK版本:4.33.0。在2018年中Facebook对SDK进行了重大改动,详情见 [https://developers.facebook.com/docs/graph-api/changelog/breaking-changes/?translation](https://developers.facebook.com/docs/graph-api/changelog/breaking-changes/?translation)

三. URL Types

URL Types.jpg

四. 白名单的配置

怎么打开白名单我就不写了,友盟给的白名单可能在实际调试的时候有点问题,所以这里一下给你关于FaceBook所有的

        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fb-messenger-share-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
        <string>fbapi20130214</string>
        <string>fbapi20130410</string>
        <string>fbapi20130702</string>
        <string>fbapi20131010</string>
        <string>fbapi20131219</string>
        <string>fbapi20140410</string>
        <string>fbapi20140116</string>
        <string>fbapi20150313</string>
        <string>fbapi20150629</string>
        <string>fbapi20160328</string>
        <string>fbauth</string>
        <string>fb-messenger-api20140430</string>
        <string>fb-messenger-platform-20150128</string>
        <string>fb-messenger-platform-20150218</string>
        <string>fb-messenger-platform-20150305</string>

当然,你也可以参考FaceBook官方给的白名单配置:白名单 (需要翻墙)

五. 敲黑板!敲黑板!敲黑板!调用FaceBook的分享!

我之前使用的友盟来调用FaceBook分享

先说有一下我遇到的问题:

  1. 未安装FaceBook App时,有些版本的iPhone无法打开web页面进行登录授权。
  2. 安装FaceBook App但是未登录时,有些版本的iPhone无法打开web页面进行登录请求。
  3. 安装FaceBook App并且登录时候,分享到FaceBook的链接不能包含中文,不然分享链接直接失效不显示了。

因为我本来就是自己写的分享面板,所以关于第一第二个问题的解决方案是,在判断当前是分享到FaceBook时,调用FaceBook自己的分享,不使用友盟的分享方法。

1. 添加头文件

友盟的包里就有不用单独下载,直接写就行了。

#import <FBSDKShareKit/FBSDKShareKit.h>
2. 调用FaceBook的原生分享
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
NSString *urlStr = [weakSelf.urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
content.contentURL = [NSURL URLWithString:urlStr];

FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];
dialog.fromViewController = self;
dialog.shareContent = content;
if ([[UMSocialManager defaultManager] isInstall:UMSocialPlatformType_Facebook]) {
    dialog.mode = FBSDKShareDialogModeNative;
} else {
    dialog.mode = FBSDKShareDialogModeAutomatic;
}
[dialog show];

先去用友盟的方法判断是否安装了FaceBook,如果没安装就使用FBSDKShareDialogModeAutomatic
安装了FaceBook就使用FBSDKShareDialogModeNative

这个dialog.mode是个枚举,有Automatic、Navtive、ShareSheet、Browser、Web......官方给的方法里是使用FBSDKShareDialogModeShareSheet,但是它是在你的App内部打开一个fb的分享面板给你使用,并不会跳转到FaceBook内,所以你没登录的话,不会有任何反应~
然后换成dialog.mode = FBSDKShareDialogModeNative; 只要安装了FaceBook就一定打开原生,GOOD!

最后:
关于友盟分享的配置,以及FaceBook的分享,可以参考以下内容:
友盟第三方分享、授权
关于友盟Facebook分享的问题
iOS中Facebook登录相关知识碎片整理(三方登录SDK为友盟)
iOS Facebook 分享中的坑
2018-01-16 集成友盟分享、登录、统计

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容