我正在构建一个 iOS 应用程序,该应用程序使用 facebook 来获得关注。我想邀请一些 friend ,用户从列表中选择,但不显示 facebook 确认对话框,我希望在幕后发生。
阅读文档时有属性 frictionlessRequestsEnabled
,但即便如此也会显示对话框,我可以选择在将来禁用显示对话框。还有其他方法吗?
最佳答案
许多应用程序在不显示 Facebook 对话框的情况下邀请您的所有 friend 。可以通过修改 FBSDK 来实现。只需将 FBSDK 存储库克隆到您的本地计算机,在 Xcode 和 Command+B 中进行编辑以构建您自己使用的框架。以下类与 FBSDK for iOS 中的邀请相关:
FBSDKWebDialogView
FBSDKWebDialog
FBSDKGameRequestDialog
获取为对话框 View 生成的 URL:
在-(BOOL)show
中的FBSDKWebDialog.m中:
NSURL *URL = [self _generateURL:&error];
这是为加载 WebView 而生成的 URL。可以在没有 Web 对话框 View 的情况下使用此 URL,只要它只生成一次(每次生成 URL 时访问 token 都会重置)并且在移动浏览器上使用。
在没有对话框的情况下邀请
您可以使用 javascript 通过执行类似的操作来模拟点击开始按钮(假设您已正确指定参数和收件人并且您的应用程序已通过 Facebook 设置)
在 FBSDKWebDialogView.m 中 - (void)webViewDidFinishLoad:(UIWebView *)webView
:
[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 框架设置得非常小,或者可能完全隐藏 View 。
然而,Facebook 正在对此类事情进行严格监管,并且将来可能会有更多的保护措施。
FBSDK repo 在这里: https://github.com/facebook/facebook-ios-sdk
关于ios - 是否可以在不显示 Facebook 对话框的情况下邀请 friend ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35796224/