2011-07-31 5 views
0

내 앱을 통해 Facebook에 로그인하면 모든 것이 작동하지만 벽에 게시하는 데 문제가 있습니다.페이스 북의 벽 게시에 문제 받기

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

동일한 문제가있었습니다. 문제는 내 데이터베이스가 VARCHAR (100)로 설정 한 열을 저장했기 때문에 데이터베이스가 액세스 토큰을 자르고 있다는 것이 었습니다. 결과적으로 일부 액세스 토큰에는 100 자만 충분하지 않으므로 전송 된 액세스 토큰이 유효하지 않습니다. –

+0

어떻게 액세스 토큰 값을 얻고 있습니까? – jBit

+0

Oauth 키를 얻으려면 Facebook에 등록해야합니다. 그런 다음 사용자는 응용 프로그램을 승인해야 응용 프로그램이 작동합니다. –

답변

0

당신은 사용자의 access_token가 벽에 정보를 게시 할 때 사용한다 : 나는 페이스 북의 벽에 게시 할 때

- (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"; 
} 

나는이 메시지가 나타납니다. 또한 사용자는 API 호출에 대한 publish_stream 권한을 허용해야합니다. 사용자를 인증 할 때 사용 권한 범위에 publish_stream을 추가하십시오.