经过长时间的调试,这里发生了什么。 (使用Facebooks Graph API)
当我没有安装facebook应用程序时点击我的帖子到Facebook按钮,登录重定向到safari,登录,并要求允许我的应用程序的permision,然后返回到我的应用程序..完美。
如果我安装了正式的Facebook应用程序,该应用程序将重定向到Facebook应用程序,并在返回我的应用程序之前显示没有对话框,并显示未知错误。
基本上,为什么在身份验证通过应用程序而不是浏览器时,发布功能不起作用?
非常感谢任何帮助!
答案 0 :(得分:1)
转到Facebook.m文件并在 - (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth safariAuth:(BOOL)trySafariAuth 方法中注释以下行,
- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
safariAuth:(BOOL)trySafariAuth {
//some line of code for initial setup
//Comment these lines
/*UIDevice *device = [UIDevice currentDevice];
if ([device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported]) {
if (tryFBAppAuth) {
NSString *fbAppUrl = [FBRequest serializeURL:kFBAppAuthURL params:params];
didOpenOtherApp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:fbAppUrl]];
}*/
//code to open the facebook login page
}
为什么你想要做手段,最初它被设置为在有证书可用性的情况下打开Facebook
答案 1 :(得分:0)
使用Facebook ios SDK这样可以正常使用。
在.h文件中
#import "Facebook.h"
Facebook *facebook;
在.m文件中
NSArray * permissions = [NSArray arrayWithObjects:
//@"publish_stream",
@"offline_access",
nil];
[facebook authorize:@"APPID" permissions:permissions delegate:self];
- (void)fbDidLogin {
//isLoggedIn = YES;
[self hideActivityLabel];
[[NSUserDefaults standardUserDefaults] setObject:facebook.accessToken forKey:@"access_token"];
[[NSUserDefaults standardUserDefaults] setObject:facebook.expirationDate forKey:@"exp_date"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"login token:");
NSLog(facebook.accessToken);
}
- (void)fbDidNotLogin:(BOOL)cancelled {
}