我在 viewDidLoad 中创建 Facebook 对象
_facebook = [[Facebook alloc] init];
我有一个表视图。当用户单击某个条目时,会弹出一个包含 3 个选项的操作表
1 发送电子邮件
2 在 Facebook 上分享
3 从 Facebook 注销:只有当用户登录时它才应该在那里,但目前它就在那里并且可以工作。
我用
[_facebook logout:self];
而且方法
- (void)fbDidLogout is called.
当用户点击“在 Facebook 上分享”时,将运行此代码
SBJSON *jsonWriter = [SBJSON new];
NSDictionary *actionLinks = [NSArray arrayWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:
@"Some text", @"text",
@"http://try.com",@"href", nil], nil];
NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];
NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys:
@"is using...", @"name",
@"It's an app….", @"caption",
@"Download!", @"description",
@"http://ituneslink", @"href",
nil];
NSString *attachmentStr = [jsonWriter stringWithObject:attachment];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
API_KEY, @"api_key",
@"Message", @"user_message_prompt",
actionLinksStr, @"action_links",
attachmentStr, @"attachment",nil];
[_facebook dialog:@"stream.publish" andParams:params andDelegate:self];
[jsonWriter release];
在 viewDidLoad 中,我也尝试使用
_facebook.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"AccessToken"];
_facebook.expirationDate = (NSDate *) [[NSUserDefaults standardUserDefaults] objectForKey:@"ExpirationDate"];
_permissions = [[NSArray arrayWithObjects: @"read_stream", @"offline_access",nil] retain];
if ([_facebook isSessionValid] == NO) {
[_facebook authorize:API_KEY permissions:_permissions delegate:self];
}
输入fbDidLogin:
[[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"AccessToken"];
[[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"ExpirationDate"];
但 fbDidLogin 从未被调用。
EDIT
我使用 FB 10 月 api 解决了问题(虽然我还没有找到 11 月的解决方案)。