- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试使用以下代码从 ACAccountStore 获取一个帐户:
- (void) facebookLoginOnSuccess: (void (^)(void)) successBlock onError:(void(^)(NSError *error))errorBlock{
self.facebookPermissions = @[
@"offline_access",
@"publish_stream",
@"user_birthday",
@"user_location",
@"email"
];
NSDictionary *options = @{
@"ACFacebookAppIDKey": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FacebookAppID"],
@"ACFacebookAppVersionKey": @"1.0",
@"ACFacebookPermissionsKey": self.facebookPermissions,
@"ACFacebookPermissionGroupKey": @"write"
};
[self accountLoginFor:ACAccountTypeIdentifierFacebook withOptions:options OnSuccess:successBlock onError:errorBlock];
}
- (void) accountLoginFor: (NSString *) accountTypeID withOptions: (NSDictionary *) options OnSuccess: (void (^)(void)) successBlock onError:(void(^)(NSError *error))errorBlock{
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:accountTypeID];
[accountStore requestAccessToAccountsWithType:accountType
options:options
completion:^(BOOL granted, NSError *error){
if (granted){
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
NSLog(@"%@",accountsArray);
}
else {
NSLog(@"Error accessing account: %@", [error localizedDescription]);
}
}];
}
但是我收到了这个错误:
Error Domain=com.apple.accounts Code=6 "The operation couldn't be completed. (com.apple.accounts error 6.)"
而且我找不到任何相关的东西,只有这个 question .有什么想法可能是错误的吗?
更新
我在 Apple Developer Docs 上找到了这个。
Accounts Framework
When requesting access to Facebook accounts, the only key required in your options dictionary is ACFacebookAppIdKey. ACFacebookPermissionGroupKey and ACFacebookAppVersionKey are now obsolete.
If you request a write permission under ACFacebookPermissionsKey, such as publish_stream, you must provide a value for ACFacebookAudienceKey, which can be one of ACFacebookAudienceEveryone, ACFacebookAudienceFriends, or ACFacebookAudienceOnlyMe.
所以我将选项更改为:
NSDictionary *options = @{
@"ACFacebookAppIDKey": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FacebookAppID"],
@"ACFacebookPermissionsKey": self.facebookPermissions,
@"ACFacebookAudienceKey": ACFacebookAudienceFriends
};
但我遇到了同样的错误。
最佳答案
好的,如果您还没有在 iOS 6 的“设置”中设置帐户,它会抛出错误代码 6。如果用户简单地拒绝权限,那么它会抛出错误代码 7。在情况 6 中,我建议您让用户先在“设置”中设置她的帐户。
NSDictionary *options = @{
ACFacebookAppIdKey: @"1234567890",
ACFacebookPermissionsKey: @[@"publish_stream"],
ACFacebookAudienceKey: ACFacebookAudienceFriends
};
[self.accountStore requestAccessToAccountsWithType:facebookAccountType options:options completion:^(BOOL granted, NSError *error)
{
if (granted)
{
NSArray *accounts = [self.accountStore accountsWithAccountType:facebookAccountType];
if([accounts count]>0)
self.facebookAccount = [accounts lastObject];
}
else
{
dispatch_async(dispatch_get_main_queue(), ^{
// Fail gracefully...
NSLog(@"%@",error.description);
if([error code]== ACErrorAccountNotFound)
[self throwAlertWithTitle:@"Error" message:@"Account not found. Please setup your account in settings app."];
else
[self throwAlertWithTitle:@"Error" message:@"Account access denied."];
});
}
}];
关于ios - ACAccountStore 错误 6 (ACErrorAccountNotFound) 和 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630066/
我正在开发一个应用程序,我想在其中使用 SLRequest 发布到 Twitter。我已经让它在模拟器上工作,但它在我的设备上不起作用。 [self.accountStor accountsWith
我正在尝试使用 ios 帐户框架。我已经在构建阶段添加了 Accounts.Framework,但我仍然收到错误 Use of undeclared identifier "ACAccountStor
我有一个启用了 Facebook user_photos 权限的应用。问题是,如果我访问 Facebook 并删除该应用程序,iOS 不会注意到这一点。 ACAccountStore 说我有权限,因此
我有一个问题:ACAccountStore 是否会自动更新 Twitter token ?我需要在我的服务器中使用 token 来自动发布。请分享您的经验。 最佳答案 如果您像这样使用 SLReque
我有以下一段 Swift 代码可以连接到我的 iOS 模拟器中的 Twitter 帐户。 我对 requestAccessToAccountsWithType 的调用被授予,但 ACAccountSt
我目前正在开发一个使用 ACAccountStore 访问 twitter 帐户以获取推文的应用程序。一切正常,但我不知道如果用户不向帐户授予 promise ,我可以显示或做什么。 我的第一个想法是
我将 ACAccount 存储在数组中作为 - NSArray *arrayOfAccounts = [accountStore accountsWithAccountType:accountTyp
我正在尝试使用 iOS Social.framework 分享到 Facebook。但是,大多数用户不会在“设置”>“Facebook”中设置 Facebook,因此当您打开 UIActivityVi
请说明我们何时使用此方法?- (void)saveAccount:(ACAccount *)account withCompletionHandler:(ACAccountStoreSaveCompl
当我使用 iOS 6.0 运行下面的代码时,它可以工作 ACAccountStore *account = [[ACAccountStore alloc] init]; ACAccountType *
目前,我正在构建一个应用程序,它利用新的 iOS 6 社交框架来收集存储在 iOS 中的 Facebook 帐户,并创建自定义 SLRequest 以将状态更新和照片发布到用户的时间线。我已在 Fac
我在将现有 OAuth 凭据迁移到 iOS 5 中的 ACAccountStore 时遇到问题。 ACAccountStore *accountStore = [[ACAccountStore all
我正在使用新的 iOS 6 Facebook API,并且通常对 ACAccountStore 方法有一段“具有挑战性”的时间。我检索一个 ACAccount: [accountStore reque
我正在尝试使用以下代码从 ACAccountStore 获取一个帐户: - (void) facebookLoginOnSuccess: (void (^)(void)) successBlock o
我有一个方法允许用户使用 twitter API 关注其他 twitter 帐户,但是,此方法自 iOS 11 起停止工作。 因为:社交账户已从 iOS 11 的“设置”中移除。第三方应用程序无法再访
您好,我想从 iOS 6 中的 ACAccountStore 获取 Facebook 用户的 UID self.accountStore = [[ACAccountStore alloc]in
在使用 ACAccountStore 和 ACAccount 时,有什么方法可以判断您的 Facebook token 何时过期? 我创建了一个 ACAccountStore,获得了对用户 faceb
我正在尝试使用 iOS 的帐户框架将 Twitter 集成到我的应用程序中。我打电话: ACAccountStore *accountStore = [[ACAccountStore alloc] i
我正在使用 iOS SDK 中的帐户框架来处理 Twitter 请求。当我的应用请求用户访问 Twitter 帐户的权限时,(null) 将在权限请求警报中显示为应用名称。 我需要设置什么值才能使其显
一般来说,使用 iOS 的 ACAccountStore 通过第三方(例如 Twitter)对用户进行身份验证,然后将其绑定(bind)到我自己的服务中的现有用户(假设他们已经登录)的最佳实践是什么?
我是一名优秀的程序员,十分优秀!