2011-07-31 11 views
0

私のアプリからFacebookにログインすると、すべて機能しますが、壁に掲示するのに問題があります。壁紙に壁紙を貼るときの問題

- (NSString *) postToFBWallStatus:(NSString *) status andSetDelegate: (id) delegate 
{ 
    if (! isFBLoggedIn) 
    { 
     return @"NotLoggedin"; 
    } 

    NSString *message = status; 
    NSLog(@"Appdelegate: postToFBWallStatus:andSetDelegate:"); 
    NSLog(@"to be delegate class: %@",[delegate class]); 

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

    ASIFormDataRequest *newRequest = [ASIFormDataRequest requestWithURL:url]; 
    [newRequest setPostValue:message forKey:@"message"]; 
    [newRequest setPostValue:@"" forKey:@"name"]; 
    [newRequest setPostValue:@"" forKey:@"caption"]; 
    [newRequest setPostValue:@"" forKey:@"description"]; 
    [newRequest setPostValue:@"" forKey:@"link"]; 
    [newRequest setPostValue:@"" forKey:@"picture"]; 
    [newRequest setPostValue:_accessToken forKey:@"access_token"]; 
    [newRequest setDidFinishSelector:@selector(postToWallFinished:)]; 
    [newRequest setDidFailSelector:@selector(postToWallFailed:)]; 
    [newRequest setDelegate:delegate]; 
    [newRequest startAsynchronous]; 

    return @"Loggedin"; 
} 

私はFacebookのウォールに投稿するとき、私はこのメッセージが表示されます。

error =     { 
       message = "Invalid access token signature."; 
       type = OAuthException; 
   }; 
+1

私は同じ問題を抱えています。問題は、データベースがVARCHAR(100)として設定された列を格納していたため、データベースがアクセストークンを切り捨てていたことです。判明したように、一部のアクセストークンでは100文字では不十分なので、送信されたアクセストークンは無効です。 –

+0

アクセストークンの値はどのように取得していますか? – jBit

+0

Facebookに登録してOauthキーを取得する必要があります。その後、ユーザーはアプリケーションを承認してから動作させる必要があります。 –

答えて

0

あなたは自分の壁に情報を投稿するユーザーのaccess_tokenを使用する必要があります。さらに、ユーザーはAPI呼び出しのpublish_streamアクセス許可を許可する必要があります。ユーザーを認証するときは、アクセス許可の範囲にpublish_streamを追加します。