• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 尝试登录 iOS sdk 时无法通过 FBSDKLoginKit 获取访问 token

[复制链接]
菜鸟教程小白 发表于 2022-12-13 10:45:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 facebook sdk 在 facebook 上共享文本,但在尝试登录时无法获取访问 token 。登录成功,但没有获得任何访问 token 。 因此,如果没有访问 token ,我将无法在 facebook 上分享文本。 我的代码如下

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions[@"public_profile"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {


if ([result.token hasGranted"publish_actions"]) {
    [[[FBSDKGraphRequest alloc]
      initWithGraphPath"me/feed"
      parameters: @{ @"message" : @"hello world"}
      HTTPMethod"OST"]
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         if (!error) {
             NSLog(@"ost id:%@", result[@"id"]);
         }
     }];
}

if (error) {
    // Process error
} else if (result.isCancelled) {

    // Handle cancellations
} else {
    // If you ask for multiple permissions at once, you
    // should check if specific permissions missing
    if ([result.grantedPermissions containsObject"email"]) {
        // Do work
    }
}

}];

我在 FBSDKLoginManager 对象的处理程序 block 中得到结果,没有错误,但它不包含 token 或其他数据

输出如下

enter image description here

请告诉我如何解决这个问题 谢谢



Best Answer-推荐答案


试试这个代码。基于 Facebook SDK 4.0 版

AppDalegate.m

- (BOOL)applicationUIApplication *)application openURLNSURL *)url sourceApplicationNSString *)sourceApplication annotationid)annotation {
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
}

ViewController.m

- (IBAction)btnFacebookPressedid)sender {
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    [login logInWithReadPermissions[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
     {
         if (error)
         {
             // Process error
         }
         else if (result.isCancelled)
         {
             // Handle cancellations
         }
         else
         {
             if ([result.grantedPermissions containsObject"email"])
             {
                 NSLog(@"result is:%@",result);
                 [self fetchUserInfo];
                 [login logOut];
             }
         }
     }];
}

-(void)fetchUserInfo
{
    if ([FBSDKAccessToken currentAccessToken])
    {
        NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]);

        [[[FBSDKGraphRequest alloc] initWithGraphPath"me" parameters{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location ,friends ,hometown , friendlists"}]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error)
             {
                 NSLog(@"resultis:%@",result);
             }
             else
             {
                 NSLog(@"Error %@",error);
             }
         }];

    }

}

关于ios - 尝试登录 iOS sdk 时无法通过 FBSDKLoginKit 获取访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30248048/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap