Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Facebook iOS授权和发布无需对话?_Iphone_Objective C_Ios_Facebook - Fatal编程技术网

Iphone Facebook iOS授权和发布无需对话?

Iphone Facebook iOS授权和发布无需对话?,iphone,objective-c,ios,facebook,Iphone,Objective C,Ios,Facebook,我刚开始使用FacebookSDK for iOS,并彻底查看了文档和其他帮助,但不可能成功 我已经启动了一个新的基于视图的应用程序,并按照文档中的建议进行了授权。每次我启动应用程序时,它都会切换到Facebook应用程序(我已经在iPhone上安装了该应用程序)并说已经授权,然后按OK。我怎样才能阻止它重复这样做 我也尝试过在没有对话的情况下发布到Facebook。控制台告诉我发出了一个请求,但随后发生了一个错误(没有崩溃,但didfailwerror告诉我) 无论如何,我还没有发布我的任何代

我刚开始使用FacebookSDK for iOS,并彻底查看了文档和其他帮助,但不可能成功

我已经启动了一个新的基于视图的应用程序,并按照文档中的建议进行了授权。每次我启动应用程序时,它都会切换到Facebook应用程序(我已经在iPhone上安装了该应用程序)并说已经授权,然后按OK。我怎样才能阻止它重复这样做

我也尝试过在没有对话的情况下发布到Facebook。控制台告诉我发出了一个请求,但随后发生了一个错误(没有崩溃,但didfailwerror告诉我)

无论如何,我还没有发布我的任何代码,因为它看起来相对简单,所以如果有人知道如何做到这一点,我将非常感谢任何帮助,甚至可能是一个代码示例


谢谢。

您的代表缺少一个关键点,您必须自己保存会话数据

- (void)fbDidLogin {
    // store the access token and expiration date to the user defaults
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:facebook.accessToken forKey:ACCESS_TOKEN_KEY];
    [defaults setObject:facebook.expirationDate forKey:EXPIRATION_DATE_KEY];
    [defaults synchronize];
}
然后,当你初始化facebook时,你将执行以下操作

facebook = [[Facebook alloc] initWithAppId:kAppId];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
facebook.accessToken = [defaults objectForKey:ACCESS_TOKEN_KEY];
facebook.expirationDate = [defaults objectForKey:EXPIRATION_DATE_KEY];
最后,如果你想在没有对话框的情况下发布,你可以这样做

NSString *message = @"Visit my blog http://effectivemobility.blogspot.com/";
NSArray *obj = [NSArray arrayWithObjects:message, nil];
NSArray *keys = [NSArray arrayWithObjects:@"message", nil];

// There are many other params you can use, check the API
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjects:obj forKeys:keys];

[facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:nil];

我希望这会有所帮助

我在我的answerGreat博客和tableview教程中添加了一点关于无对话框发布的内容。可能真的会用这个。没有对话框发布代码就没有成功,它不会崩溃,但不会做任何事情。另外,为了确保我得到了正确的授权,我复制了您的代码,但我收到了错误消息,说密钥已生成:已声明访问\u令牌\u密钥和过期\u日期\u密钥。当然它们不需要这样,因为我们只是在创建一个密钥?我在尝试发布时返回了这个错误:facebookErrDomain错误10000ACCESS\u TOKEN\u key和EXPIRATION\u DATE\u key是常量。您应该在代码的某个地方定义它们。类似于#定义到期日期_KEY@“ExpKey”最后一个问题。fbDidLogin方法,我需要调用它还是Facebook代表自动调用它?嘿,有没有可能在没有对话框的情况下共享图像??请尽快回复