objective-c - 如何使用最新的 Facebook SDK 从 iOS 向 Facebook 发布内容?

标签 objective-c ios facebook cocoa-touch post

我正在尝试从我的 native iOS 应用程序中向 facebook 发布一个简单的 url。我所做的是:

facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:delegate];

然后在某个时候

[facebook authorize:permissions];

此时我的应用程序退出,它让我进入 safari 和权限页面,而不是向我展示一个登录对话框(在我的应用程序内),我在其中登录,然后点击帖子或其他只是发布到我的墙上。

我很确定这是一个简单的问题,但由于这是我第一次进行 facebook 集成,因此配置它对我来说很痛苦,而且文档也没有太大帮助。

感谢任何帮助!谢谢!

最佳答案

如果您确实需要删除到 Safari 或 Facebook 应用程序的重定向,您应该打开 FBConnect Facebook.h 类并找到以下方法:

- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
                    safariAuth:(BOOL)trySafariAuth {

你需要声明你不想被重定向到任何地方,为此将这两个 bool 值设置为 NO

    - (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
                        safariAuth:(BOOL)trySafariAuth {
tryFBAppAuth = NO;
trySafariAuth = NO;

接下来,要将内容张贴到墙上,您有两种选择。一个坏了 - 标准的 facebook 对话窗口,一旦你在你的应用程序中的任何地方显示任何 UIAlertView,它将把键盘带到实际的 webview 后面,因此不要使用它。而是使用您自己的自定义界面,其中包含一个简单的 UITextView 区域和一个 push to wall outlet 按钮。以下是从自定义 View 发布到墙上所需的方法:

- (void)facebookPostToWallWithMessage:(NSString *)message {
  sharedInstance.facebookDelegate = delegate;
  NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                 message, @"message", // The status message
                                 nil];

  pushMessageRequest = [facebook requestWithGraphPath:@"me/feed"
                                            andParams:params
                                        andHttpMethod:@"POST"
                                          andDelegate:self];
}

下面是您需要的委托(delegate)方法,以便通知用户他们已发布更新或通知他们更新失败:

- (void)request:(FBRequest *)request didLoad:(id)result {
  if (request == pushMessageRequest) {
    NSLog(@"message has been posted, inform delegate");
  }
}

- (void)request:(FBRequest *)request didFailWithError:(NSError *)error {
  if (request == pushMessageRequest) {
//failed to post message, inform delegate
    //[facebookDelegate facebookFailedToPostToWallWithMessage:error.localizedDescription];
  }
}

关于objective-c - 如何使用最新的 Facebook SDK 从 iOS 向 Facebook 发布内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9331982/

相关文章:

iOS Facebook SDK 获取好友 ID 异常

html - 将图像添加到 Facebook 分享

ios - 警告 : Could not load any Objective-C class information using PaintCode's code

ios - OCMock 抛出 EXC_BAD_ACCESS

iphone - 关于 if 和 else 部分在 iPhone sdk 中的导航 Controller 类中的混淆

iphone - 在 iPhone 上跟踪横向移动

objective-c - 如何将 NSMutableArray 中的字符串按字母顺序排序?

ruby-on-rails - Ruby on Rails Omniauth facebook 不返回电子邮件

objective-c - 对象由 "0 key/value pairs"表示,而不是 LLVM 中的内存地址

ios - 如何从 AppDelegate 访问 TableView Controller 上声明为公共(public)的数组变量?