- (id)init {
if (self == [super init]) {
facebook = [[Facebook alloc] initWithAppId:kAppId];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
permissions = [[NSArray arrayWithObjects:
@"read_stream", @"user_birthday",
@"publish_stream", nil] retain];
[facebook authorize:permissions delegate:self];
}
[self login];
}
return self;
}
- (void)login {
if (![_session isConnected]) {
[self postToWall];
}
if (![facebook isSessionValid]) {
[facebook authorize:permissions delegate:self];
}
}
- (void)fbdidLogin {
[[NSUserDefaults standardUserDefaults] setObject:self.facebook.accessToken forKey:@"FBAccessToken"];
[[NSUserDefaults standardUserDefaults] setObject:self.facebook.expirationDate forKey:@"FBExpirationDate"];
// User has logged in to Facebook, now get their userId from Facebook
[facebook requestWithGraphPath:@"me" andDelegate:self];
}
-(void)postToWall
{
SBJSON *jsonWriter = [[SBJSON new] autorelease];
NSDictionary *actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:
@"Always Running",@"text",@"http://itsti.me/",@"href", nil], nil];
NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];
NSDictionary *attachment = [NSDictionary dictionaryWithObjectsAndKeys:
@"Your Happiness!", @"name",
@"asda", @"caption",
@"asdf", @"description",
nil];
NSString *attachmentStr = [jsonWriter stringWithObject:attachment];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Share on Facebook", @"user_message_prompt",
actionLinksStr, @"action_links",
attachmentStr, @"attachment",
nil];
[facebook dialog:@"stream.publish" andParams:params andDelegate:self];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [facebook handleOpenURL:url];
}
이것은 페이스 북 대화 상자를 호출하는 나의 방법입니다.하지만 게시 점수를 얻기 위해 클릭 할 때마다, 권한 상자가 먼저 나타납니다. 게시 대화 상자가 나타나면 권한을 부여해야합니다. 권한을 부여하고 싶습니다. 나는 그것을 저장하고 싶습니다. 저장 한 후에는 허가 상자를 다시보고 싶지 않습니다. 어떻게 할 수 있습니까? 내 코드에 어떤 문제가 있습니까?왜 fbdidlogin이 호출하지 않았습니까?
편집 : 내 액세스 토큰과 만료 날짜가 null입니다.
나는 fsDidlogin을 nslog로 확인하고 FBSession Delegate가 포함되어 있는지 확인합니다. 원하는 경우 헤더 파일을 게시 할 수도 있습니다. –
물론, 헤더 파일을 게시하고 최신 구현 파일을 다시 게시하십시오. –
나는 모두를 삭제하고 이전 것에서 아마 무언가를 잃는 다시 처리한다 –