2

私は現在、SLRequestを使用してFacebookにステータスを投稿しようとしています。これは私が持っているコードです。

ACAccountStore *accountStore = [[ACAccountStore alloc] init];
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
    NSLog(@"0");
    [accountStore requestAccessToAccountsWithType:accountType options:@{ACFacebookAppIdKey : @"00000000000", ACFacebookPermissionsKey : @"publish_stream", ACFacebookAudienceKey : ACFacebookAudienceFriends} completion:^(BOOL granted, NSError *error) {
        if(granted) {
            NSLog(@"1");
            NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
            NSLog(@"2");
            if ([accountsArray count] > 0) {
                NSLog(@"3");
                ACAccount *facebookAccount = [accountsArray objectAtIndex:0];
                NSLog(@"4");
                SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                                                requestMethod:SLRequestMethodPOST
                                                                          URL:[NSURL URLWithString:@"https://graph.facebook.com/me/feed"]
                                                                   parameters:[NSDictionary dictionaryWithObject:post forKey:@"message"]];
                NSLog(@"5");

                [facebookRequest setAccount:facebookAccount];
                NSLog(@"6");

                [facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) {
                    NSLog(@"%@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
                }];


            }
        }
    }];

しかし、私が持っているコードは通り過ぎたくありませんif(granted){が、私がやったことがうまくいかない理由がわかりません。どんな助けでもいただければ幸いです!

4

2 に答える 2

4

私の場合、これを解決するために、Facebook のアプリのプロパティにバンドル ID を登録します。

Facebook でアプリを編集し、「アプリを Facebook と統合する方法を選択してください」を探し、「ネイティブ iOS アプリ」の「iOS バンドル ID」にプロジェクトのバンドル ID を登録します。

そうでない場合は、エラー メッセージを読んでみてください。

if(granted) {
    ...
}
else {
    NSLog([NSString stringWithFormat:@"%@", error.localizedDescription]);
}
于 2012-09-24T18:45:12.683 に答える