我正在關注facebook url中提供的信息。它的工作很好,如果facebook應用程序不在設備上。
考慮Facebook應用不在設備上:我正在授權Facebook及其開放的Safari瀏覽器。我授權應用程序,回到ios應用程序,它調用FBSessionDelegate中的委託「fbDidLogin」。我正在保存上面URL中提到的訪問令牌和過期日期。然後,我可以發佈它的Facebook。這工作正常。
現在,facebook應用程序可在設備上登錄:當我打電話「授權」時,它會打開Facebook應用程序並授權該應用程序,然後返回到ios應用程序。但它並沒有調用「fbDidLogin」委託方法。我應該如何識別或捕獲訪問令牌和到期日期?我正在寫下面的代碼:
facebook = [[Facebook alloc] initWithAppId:FB_APPID andDelegate:self];ios5 - 當facebook應用程序已在設備上時發佈到facebook
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:@"publish_stream",nil];
if (![facebook isSessionValid])
{
[facebook authorize:permissions];
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults setBool:YES forKey:@"IIRY_FACEBOOK"];
[defaults synchronize];
}
有人能指出我犯的錯誤嗎?
但我仍然想使用默認功能而不更改Facebook代碼。但是根據facebook的文檔,他們沒有提到如何處理這種情況。很糟糕。 – Satyam