新しい(ベータ版)facebook ios sdk 3.0を使用して、アプリにfacebook統合を追加しようとしています。私が望むのは、ステータスの更新を Facebook に投稿することだけです。FBLoginView を使用して Facebook にログインしました。Facebookの指示に従って、アプリIDをplistに入れました。Facebookに投稿するコードをいくつか入れました。
(void)viewDidLoad
{
[super viewDidLoad];
NSArray *perms;
perms = [NSArray arrayWithObjects:@"status_update", nil];
FBLoginView *loginview =
[[FBLoginView alloc] initWithPermissions:perms];
loginview.frame = CGRectOffset(loginview.frame, 5, 5);
loginview.delegate = self;
[self.view addSubview:loginview];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)poststatus:(UIButton *)sender {
NSString *message = [NSString stringWithFormat:@"Test staus update"];
[FBRequestConnection startForPostStatusUpdate:message
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
[self showAlert:message result:result error:error];
}];
}
- (void)showAlert:(NSString *)message
result:(id)result
error:(NSError *)error {
NSString *alertMsg;
NSString *alertTitle;
if (error) {
alertMsg = error.localizedDescription;
alertTitle = @"Error";
} else {
NSDictionary *resultDict = (NSDictionary *)result;
alertMsg = [NSString stringWithFormat:@"Successfully posted '%@'.\nPost ID: %@",
message, [resultDict valueForKey:@"id"]];
alertTitle = @"Success";
}
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle
message:alertMsg
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
奇妙なことに、このコードは一度だけ機能します。初めてユーザーを認証した後、1 つのステータス更新を正常に投稿できます。その後、以降の試行はすべて FBiOSSDK エラー 5 で失敗します (コンソールでは、エラー: HTTP ステータス コード:400)。これを修正する唯一の方法は、Facebook アカウントからアプリを削除して再認証することです。何が問題なのかわからない。解決策をオンラインで探しましたが、何も見つかりませんでした。誰かがこれを修正する方法を知っている場合は、私に知らせてください。ありがとう