电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

IOS接入facebook詳解

瀏覽:39日期:2022-09-16 17:55:03
facebook 接入1.在 facebook 后臺 配置 ios 平臺, 獲取 fb appid

IOS接入facebook詳解

store id 可以先隨便找一個已存在的填入進去.

2.CocoaPods 引入幾個核心庫

pod ’FBSDKCoreKit’, ’~> 9.0.1’pod ’FBSDKLoginKit’, ’~> 9.0.1’pod ’FBSDKShareKit’, ’~> 9.0.1’

pod 工程構建出 靜態庫丟到 /Users/XXX/Library/Developer/Xcode/DerivedData/Build/Products 對應 真機/模擬器 的目錄下, 然項目工程編譯時可以鏈接到靜態庫

IOS接入facebook詳解

3.在 info.plist 文件的 <dict>...</dict> 內加入配置

<key>CFBundleURLTypes</key><array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb[APP_ID]</string> </array> </dict></array> <key>FacebookAppID</key><string>[APP_ID]</string><key>FacebookDisplayName</key><string>[APP_NAME]</string><key>LSApplicationQueriesSchemes</key><array> <string>fbapi</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-share-api</string> <string>fbauth2</string> <string>fbshareextension</string></array>

[APP_ID] 替換 fb appid.

[APP_NAME] 替換為 app 名.

4.代碼

在 app 啟動完后初始化 sdk

// AppDelegate.m @implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; return YES;}- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options{ [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url options:options]; return YES;}

iOS 13 將打開網址的功能移到了 SceneDelegate 中

// SceneDelegate.m#import <FBSDKCoreKit/FBSDKCoreKit.h>@import FacebookCore;@implementation SceneDelegate- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts{ UIOpenURLContext *context = URLContexts.allObjects.firstObject; [FBSDKApplicationDelegate.sharedInstance application:UIApplication.sharedApplication openURL:context.URL sourceApplication:context.options.sourceApplication annotation:context.options.annotation];}

登錄, 登出, 獲取用戶信息, 展示 登錄頁面

#import 'FBHelper.h'#import <FBSDKCoreKit/FBSDKCoreKit.h>#import <FBSDKLoginKit/FBSDKLoginKit.h>@implementation FBHelperstatic FBHelper *_sharedIns = nil;+(instancetype) shareInstance { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{_sharedIns = [[self alloc] init] ; }) ;return _sharedIns ;}-(void)showLoginBtn:(UIView*)view{ FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init]; loginButton.center = view.center; [view addSubview:loginButton];}-(void)login:(UIViewController*)vc{ FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logInWithPermissions:@[@'publish_actions'] fromViewController:vchandler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {if (error) { NSLog(@'--- login fail, err: %@', error); return;}FBSDKAccessToken* accessToken = [FBSDKAccessToken currentAccessToken];if (accessToken) { NSLog(@'--- login success, userId: %@, token: %@', accessToken.userID, accessToken.tokenString); return;}NSLog(@'--- login cancel'); }];}-(void)logout{ if ([FBSDKAccessToken currentAccessToken]) {NSLog(@'--- has accessToken');FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];[login logOut]; } else {NSLog(@'--- no accessToken'); }}-(void)getUserData{ if ([FBSDKAccessToken currentAccessToken]) {if ([FBSDKAccessToken currentAccessToken]) { [[[FBSDKGraphRequest alloc] initWithGraphPath:@'me?fields=id,name,token_for_business' parameters:nil] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {if (!error) { NSLog(@'--- fetched success, result: %@', result);} else { NSLog(@'--- fetched error: %@', error);} }];} } else {NSLog(@'--- no accessToken'); }}@end踩坑

編譯報錯: 找不到 swift 相關文件

報錯: Undefined symbol: __swift_FORCE_LOAD_$_

原因是因為 sdk 使用了 swift, 而工程配置里沒有配置 swift 頭文件搜索的路徑.

解決辦法很簡單: 創建一個 swift 文件即可, xcode 會提示創建橋接文件 Create Bridging Header

以上就是IOS接入facebook詳解的詳細內容,更多關于IOS接入facebook的資料請關注好吧啦網其它相關文章!

標簽: IOS
相關文章:
主站蜘蛛池模板: 学习虾-免费的学习资料下载平台| 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 上海心叶港澳台联考一对一培训_上海心叶港澳台联考,港澳台联考一对一升学指导 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 油缸定制-液压油缸厂家-无锡大鸿液压气动成套有限公司 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 光照全温振荡器(智能型)-恒隆仪器 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 食品级焦亚硫酸钠_工业级焦亚硫酸钠_焦亚硫酸钠-潍坊邦华化工有限公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 天津电机维修|水泵维修-天津晟佳机电设备有限公司 | 首页 - 军军小站|张军博客| 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 挨踢网-大家的导航! | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 外贸资讯网 - 洞悉全球贸易,把握市场先机 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司| 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 |