1
我想張貼在牆上消息給當前用戶。在我處理請求之前,我正在驗證會話並授權它是否不會。我澄清了一些聲明和初始化變量。問題是這裏顯示的代碼在fbDidLogin-delegate方法執行之前執行。所以看起來Facebook對象在請求之前沒有有效的訪問令牌。我做了一個單身人士。下一次我運行它的程序,它的工作。Facebook的SSO和要求的iOS SDK
代表
- (void)fbDidLogin
{
NSLog(@"DEBUG: DID LOG IN");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
的viewController
Facebook *facebook = [SocialMedia sharedFacebookAuthorized];
NSString *name = nil;
NSString *message = nil;
NSString *picture = nil;
if (self.didPassTest) {
// Code
} else {
// Code
}
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
name, @"name",
message, @"message",
picture, @"picture",
description, @"description",
link, @"link",
caption, @"caption", nil];
[facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];
SharedFacebook..function
+ (Facebook *)sharedFacebookAuthorized
{
[self sharedFacebook];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
NSArray *permissions = [[NSArray arrayWithObjects:@"email", @"read_stream", @"publish_stream", nil] retain];
NSLog(@"START?");
if (![facebook isSessionValid]) {
[facebook authorize:permissions];
NSLog(@"INSIDE?");
}
NSLog(@"CONTINUE?");
return facebook;
}
dtuckernet:謝謝你的回覆,你明白我的問題。但是,我如何使用這些塊?我以前從未使用過。 – LuckyLuke
這是一個介紹:http://pragmaticstudio.com/blog/2010/7/28/ios4-blocks-1 – dtuckernet
dtuckernet:並沒有別的辦法?我需要有> 3.2這方面的工作,並在iOS的4 – LuckyLuke