0
我正在實施一個應用程序,用戶將能夠發佈狀態。如果用戶在他/她的設備默認登錄,然後下面的代碼將工作在Facebook上發佈狀態
if(!self.accountStore)
self.accountStore = [[ACAccountStore alloc] init];
if(NSClassFromString(@"SLComposeViewController") != nil)
{
ACAccountType *facebookTypeAccount = [self.accountStore
accountTypeWithAccountTypeIdentifier:@"com.apple.facebook"];
NSLog(@"facebookTypeAccount..:%@",facebookTypeAccount);
NSArray *accounts = [self.accountStore accountsWithAccountType:facebookTypeAccount];
if (facebookTypeAccount) {
if ([accounts respondsToSelector:@selector(count)]) {
[self.accountStore requestAccessToAccountsWithType:facebookTypeAccount
options:@{ACFacebookAppIdKey: @"214267482030378", ACFacebookPermissionsKey: @[@"email"]}
completion:^(BOOL granted, NSError *error) {
if(granted){
NSArray *accounts = [self.accountStore accountsWithAccountType:facebookTypeAccount];
_facebookAccount = [[accounts lastObject]retain];
}
else
{
NSLog(@"Failed, Error: %@", error);
}
}];
}
else
{
[self openSession];
}
}
}
否則控制會去這個方法
- (void)openSession{
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"publish_stream",@"email",
nil];
[FBSession openActiveSessionWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceEveryone
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error)
{
[self sessionStateChanged:session state:state error:error];
}];
}
但隨着登錄我需要在發送狀態Facebook的。如果我用這種方法
-(void)poststatus{
[[FBSession activeSession] reauthorizeWithPublishPermissions:@[ @"publish_stream" ]
defaultAudience:FBSessionDefaultAudienceEveryone completionHandler:^(FBSession
*authSession, NSError *authError) {
// If auth was successful, create a status update FBRequest
if (!authError) {
FBRequest *postRequest = [FBRequest requestForPostStatusUpdate:@"Hello, world!"];
[postRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
// TODO: Check for success/failure here
}];
}
}];
}試圖
則給出了錯誤失敗,錯誤:錯誤域= com.apple.accounts代碼= 8「的操作無法完成(COM。 apple.accounts錯誤8)「請幫助我,如果有人對這個概念有一些想法。
在此先感謝。
我已經嘗試過,但我的答案不工作@Grzegorz Krukowski –
一個提示 - 你正在使用的方法已過時。 –
我在我的應用程序上測試了這個代碼 - 它的工作原理。也許你在應用程序設置上有一些問題?你在沙盒工作嗎? –