是否可以邀请朋友而不显示Facebook对话框?

时间:2016-03-04 12:35:03

标签: ios facebook-sdk-4.0

我正在构建一个使用facebook获取牵引力的iOS应用程序。我想邀请一些朋友,用户从列表中选择,但没有显示Facebook确认对话框,我希望这发生在幕后。

阅读文档有属性frictionlessRequestsEnabled,但即使是显示对话框,我也可以选择在将来禁用显示对话框。还有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:3)

许多应用邀请所有朋友而不显示Facebook对话框。可以通过修改FBSDK来实现。只需将FBSDK存储库克隆到本地计算机,在Xcode和Command + B中编辑即可构建供您自己使用的框架。以下类与邀请在FBSDK for iOS中相关:

FBSDKWebDialogView
FBSDKWebDialog
FBSDKGameRequestDialog

获取对话框视图生成的URL:

-(BOOL)show中的FBSDKWebDialog.m中:

NSURL *URL = [self _generateURL:&error];

这是为加载Web视图而生成的URL。可以在没有Web对话框视图的情况下使用此URL,只要它只生成一次(每次生成URL时访问令牌都会重置)并在移动浏览器上使用。

在没有对话框的情况下邀请

你可以使用javascript来模拟点击go按钮,做这样的事情(假设你已经正确指定了参数和收件人,你的应用已经通过Facebook设置)

- (void)webViewDidFinishLoad:(UIWebView *)webView中的FBSDKWebDialogView.m中:

[NSTimer scheduledTimerWithTimeInterval:.1 target:[NSBlockOperation blockOperationWithBlock:^{  NSString * jsCallBack = [NSString stringWithFormat:@"document.getElementById(\"u_0_0\").click();"];

[webView stringByEvaluatingJavaScriptFromString:jsCallBack];

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"u_0_0\").click();"]; }] selector:@selector(main) userInfo:nil repeats:NO ];

只要webView存在于某个地方,您就可以在不受用户干扰的情况下执行这些操作。您可以将webView框架设置得非常小,或者可能完全隐藏视图。

然而,Facebook正在对这类事情进行严厉监管,未来可能会有更多的保护措施。

FBSDK回购这里: https://github.com/facebook/facebook-ios-sdk