gpt4 book ai didi

ios - 调用 [ACAccountStore requestAccessToAccountsWithType] 时获取 "Error Code 8"- iOS Facebook

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

我一直在搜索 Google 和 SO,但找不到 com.apple.accounts 错误代码 8 的含义。我正在尝试使用 iOS 6 和 Facebook SDK。

我运行这个请求;

  if (!_accountStore) _accountStore = [[ACAccountStore alloc] init];

ACAccountType *fbActType = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];


NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:
(NSString *)ACFacebookAppIdKey, @"###############",
(NSString *)ACFacebookPermissionsKey, [NSArray arrayWithObject:@"email"],
nil];



[_accountStore requestAccessToAccountsWithType:fbActType options:options completion:^(BOOL granted, NSError *error) {
if (granted) {
NSLog(@"Success");
NSArray *accounts = [_accountStore accountsWithAccountType:fbActType];
_facebookAccount = [accounts lastObject];
} else {
NSLog(@"ERR: %@",error);
// Fail gracefully...
}
}
];

我收到这个错误:

错误:错误域=com.apple.accounts 代码=8“操作无法完成。(com.apple.accounts 错误 8。)”

无论我做什么,granted 都不会返回 true。任何想法将不胜感激。

如果我绕过 if(granted) 并调用此函数:

- (void)me{

NSLog(@"Home.m - (void)me");

NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"];

SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:meurl
parameters:nil];

merequest.account = _facebookAccount;

[merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

NSLog(@"%@", meDataString);

}];

然后我看到 Facebook 返回的这个 JSON:{"error":{"message":"必须使用事件访问 token 来查询有关当前用户的信息。","type":"OAuthException","code":2500}}}

更新:因此,错误意味着“客户端的访问信息字典有不正确或缺失的值。”但我不知道那是什么意思。

最佳答案

您的选项字典中有错误。

NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:
(NSString *)ACFacebookAppIdKey, @"###############",
(NSString *)ACFacebookPermissionsKey, [NSArray arrayWithObject:@"email"],
nil];

更好地阅读方法声明:“带有对象和键的字典”,所以首先是对象,然后是键...但是您首先插入了 KEYS,然后插入了 OBJECTS(错误的顺序 :-)

正确的字典是:

    NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:
@"###############", ACFacebookAppIdKey,
[NSArray arrayWithObject:@"email"], ACFacebookPermissionsKey,
nil];

或者,声明字典字面量:

    NSDictionary *options = @{
ACFacebookAppIdKey : @"###############",
ACFacebookPermissionsKey : [NSArray arrayWithObject:@"email"]
};

关于ios - 调用 [ACAccountStore requestAccessToAccountsWithType] 时获取 "Error Code 8"- iOS Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425325/

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