gpt4 book ai didi

ios - 通过帐户框架请求访问 Facebook 时是否可以获得 oauth token ?

转载 作者:可可西里 更新时间:2023-11-01 05:55:31 25 4
gpt4 key购买 nike

我需要在服务器后台进行一些 API 调用,这就是我需要 oauth token 的原因。

使用 ACAccountCredentialoauthToken 方法,它返回 null。我的问题是,是否有可能以某种方式获得 oauth token ?

例如 Instagram 就是这样做的。他们通过账户框架进行身份验证,并将 token 发送到他们的服务器,在那里他们进行所有图形 API 调用。

谢谢

最佳答案

(编辑以解决@0xSina 的评论)

是的。我了解到您已尝试访问 Facebook ACAccount 对象的 ACAccountCredential 的 oauthToken 属性,但它返回 nil。也就是说,这就是执行此操作的方法,当一切设置正确时它不会返回 nil

我创建了一个测试项目来证明这一点,相关代码如下。需要检查的几件事:

1) 在您的 Facebook 应用程序信息页面上,确保您已在 native iOS 应用程序部分设置了 bundle ID。

2)(很明显)确保您在 iOS 设置中设置了 Facebook 帐户。

3) 如果您的主项目无法运行,请像我一样尝试一个空的测试项目,看看是否可行。您必须记住设置测试项目的 bundleID 以匹配您在 Facebook 设置页面上输入的内容!

这是带有一些断言的代码,可以在出现问题时通知您:

- (void) viewDidAppear:(BOOL)animated
{
ACAccountStore* as = [ACAccountStore new];

ACAccountType* fbat = [as accountTypeWithAccountTypeIdentifier: ACAccountTypeIdentifierFacebook];
NSAssert( fbat != nil, @"oops, can't find account-type for facebook!");

[as requestAccessToAccountsWithType: fbat

options: @{ ACFacebookAppIdKey : @"99999999999", // your FB appid here!
ACFacebookPermissionsKey : @[ @"email" ] }

completion: ^(BOOL granted, NSError *error) {

NSAssert( granted && error==nil, @"oops, access not granted!");

if ( granted )
{
NSArray* accounts = [as accountsWithAccountType: fbat];
NSAssert( accounts.count > 0, @"oops, no accounts??" );

ACAccount* fbaccount = [accounts lastObject];

ACAccountCredential* ac = [fbaccount credential];
NSAssert( ac != nil, @"oops, no credential??" );

NSString* token = [ac oauthToken];
NSAssert( token.length > 0, @"oops, no credential??" );

NSLog( @"token=%@", token );
}
}];


}

我认为,一个常见问题是将 ACFacebookPermissionsKey 错误格式化为字符串而不是字符串数组。或者完全放弃它,因为文档说它是可选的(它不是。)

而且,这是我测试的输出(略有改动,所以我没有在这里发布真实的 token )

2013-07-26 16:54:23.699 testfb[26870:1303] token=CAAAAEZBYxezsBAK6OK9YPQIfA0GjiG7rn2XjdZBC6lZCpfAAAocr2cyEnmne9eMh59ZA4UabQyZAsdQMu0gMruxEJXJI1tFfBVTmLqNpRK31GPQvr3rXRAr50HUXI37iS46gPwXwZAroUHT7WqZCza6HcV6L35gVThBcOttWNxozj1df70XluEreM14nucSmvimjVGu5i4ZBZAUrSYLsvO

关于ios - 通过帐户框架请求访问 Facebook 时是否可以获得 oauth token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17738318/

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