「已注销」 2013-10-17 09:22 采纳率: 0%
浏览 1962

使用facebook 最新sdk分享遇到问题

facebook sdk 更新到3.8了,最近在做facebook分享,遇到个问题弄不明白,求助。。
我使用facebook sdk分享,代码如下:
-(void)shareAction
{
NSLog(@"%@",[FBSession activeSession].accessTokenData);
NSMutableDictionary *postParams = [@{
@"link" : @"www.baidu.com",
@"picture" : @"",
@"name" : @"",
@"caption" : @"",
@"description" :@""
} mutableCopy];
[FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceEveryone
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error && status == FBSessionStateOpen) {
NSLog(@"status:%d",status);
[FBRequestConnection startWithGraphPath:@"me/feed" parameters:postParams HTTPMethod:@"post" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if(error)
{
NSLog(@"%@,%d",error,error.code);
[self showAlert:@"fail"];
}
else
{
[self showAlert:@"success"];
}
}];
}else{
NSLog(@"error:%@",error);
}
}];

}
使用这种方式,在ios6系统下,需要设置facebook账号,才能分享,否则会反复回调授权页。这种方式能分享到设置界面设定的账户,但如果想要在app里面更换用户,分享到不同的用户,改如何做呢?如何在app内管理用户,登陆和登出?求各位大大解答

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-08-20 16:57
    关注

    该回答引用ChatGPT-3.5,仅为您供参考,不保证完全正确
    根据你提供的代码,我了解到你正在使用 Facebook SDK 进行分享,并且你希望在应用内管理用户登录和登出,以及在不同用户之间进行分享。我可以为你提供一些指导来解决你的问题。


    首先,你需要明确一些概念:

    1. Facebook Access Token: 这是表示用户登录状态的令牌。你在 shareAction 方法中的 [FBSession activeSession].accessTokenData 就是获取当前登录用户的 Access Token。通过这个 Access Token,你可以访问用户的 Facebook 数据,包括进行分享等操作。

    2. FBSessionStateOpen: 这是表示用户已经登录并且会话状态是开放的状态码。通过这个状态码,你可以确定用户已经登录成功,然后可以进行分享等操作。

    3. 默认受众(Default Audience): 在你的代码中,你在调用 openActiveSessionWithPublishPermissions:defaultAudience:allowLoginUI:completionHandler: 时,设置了 FBSessionDefaultAudienceEveryone 作为默认受众。这意味着分享将以“公开”方式进行,对所有人可见。

    现在,让我回答你的问题:

    1. 在app内管理用户登录和登出:
      如果你想在应用内管理用户登录和登出,你可以考虑使用 Facebook SDK 提供的登录和登出方法。你可以使用 FBSession 的不同方法来处理登录和登出。例如,你可以使用 openActiveSessionWithReadPermissions:allowLoginUI:completionHandler: 方法来实现用户的登录,并使用 closeAndClearTokenInformation 方法来实现用户的登出。

    2. 分享到不同的用户:
      如果你想要在应用内切换不同的用户并进行分享,你需要实现以下步骤:

      • 当用户登录时,存储其 Access Token,以便以后使用。
      • 当用户想要切换用户时,首先调用 closeAndClearTokenInformation 方法来登出当前用户。
      • 然后,使用先前存储的 Access Token 进行新用户的登录。
      • 最后,通过这个新用户的 Access Token 进行分享等操作。

    需要注意的是,上述步骤是一种基本的思路,你可能还需要处理一些细节,比如在切换用户时及时更新界面内容,确保用户数据的正确性等。


    总之,通过管理用户登录状态和存储不同用户的 Access Token,你就可以实现在应用内切换用户并进行分享等操作。如果你在实现过程中遇到问题,可以随时提问寻求帮助。同时,记得随着时间的推移,Facebook SDK 的版本和功能可能会有所变化,你也可以查阅最新的文档来获取更准确的信息。


    该回答引用NewBing,仅为您供参考,不保证完全正确
    根据我搜索到的结果,你可以使用Facebook SDK for iOS的一些功能来实现在app内切换不同的Facebook账户。具体步骤如下:

    • 首先,你需要在你的app中添加Facebook Login的功能,这样你就可以让用户用Facebook的凭证来登录你的app,并且可以请求用户授权你的app访问他们的数据。关于如何使用Facebook Login的教程,你可以参考这里
    • 其次,你需要在你的app中添加一个按钮或者菜单,让用户可以选择登出当前的Facebook账户,并且登录另一个账户。关于如何在app内管理用户,登录和登出的方法,你可以参考这里
    • 最后,你需要在你的分享代码中使用[FBSDKAccessToken currentAccessToken]来获取当前登录用户的访问令牌,并且把它作为参数传递给[FBRequestConnection startWithGraphPath]方法。这样你就可以确保分享到正确的用户账户。关于如何调用Graph API的方法,你可以参考这里

    源: 与必应的对话, 2023/8/20
    (1) Get Started - Facebook SDK for iOS - Meta for Developers. https://developers.facebook.com/docs/ios/getting-started/.
    (2) Switch between different Facebook accounts | Facebook Help Center. https://www.facebook.com/help/804757836392387.
    (3) Facebook SDK for iOS - Documentation - Meta for Developers. https://developers.facebook.com/docs/ios/.
    (4) Facebook iOS SDK - GitHub - Cannot switch back calling app. https://stackoverflow.com/questions/4232357/facebook-ios-sdk-github-cannot-switch-back-calling-app.
    (5) ios6 - Does facebook-ios-sdk use the iOS 6 Facebook integration to .... https://stackoverflow.com/questions/12518092/does-facebook-ios-sdk-use-the-ios-6-facebook-integration-to-support-sign-on-with.

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题