gpt4 book ai didi

iphone - Facebook 对话框、注销和访问 token (Facebook iOS SDK)

转载 作者:可可西里 更新时间:2023-11-01 05:48:21 26 4
gpt4 key购买 nike

当使用这样的代码创建 Facebook 对话框时

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: apiKey, @"api_key", nil];
[facebook dialog:@"stream.publish" andParams:params andDelegate:self];

是否可以使用 session ?

我成功地在用户的帖子墙上发布了一个帖子,但是如何让用户登出?此外,当我尝试访问当前用户信息时出现此错误。

{
error = {
message = "An active access token must be used to query information about the current user.";
type = OAuthException;
};
}

最佳答案

我在 viewDidLoad 中创建了 Facebook 对象

_facebook = [[Facebook alloc] init];

我有一个 tableView。当用户点击一个条目时,会弹出一个包含 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。

编辑

我决定使用 FB 10 月 api(虽然我还没有找到 11 月的解决方案)。

关于iphone - Facebook 对话框、注销和访问 token (Facebook iOS SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4208736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com