2012-02-21 3 views
5

내 요청 된 URL이 https://api.instagram.com/v1/media/MYMEDIA_ID/comments?access_token=MYTOKEN&text=MYTEXT인스 타 그램 댓글 API 추가 할 수 없습니다 '텍스트'값

가 나는이 같은 응답 얻을 수 있습니다 : 그것은 주석 API는 두 개의 매개 변수를 말한다 인스 타 그램 문서에서

{ 
    meta =  { 
     code = 400; 
     "error_message" = "Missing 'text'"; 
     "error_type" = APIInvalidParametersError; 
    }; 
} 

를 : textaccess_token. 나는 둘 다 제공했으며, text이 없다는 오류 메시지가 나타납니다.

& 대신 다른 기호로 시도했지만 아무 효과가 없습니다. 아무도 text 매개 변수가 요청 된 URL에 표시되는 방법에 대한 경험이 있습니까?

고맙습니다.

답변

0

Instagram에 주석을 추가하려면 URL의 일부가 아니어야 텍스트를 게시해야합니다. Instagram API 문서는 CURL을 사용한 예제를 제공합니다.

curl -F 'access_token=1084932.f59def8.deb7db76ffc34f96bada217fe0b6cd9a' \ 
    -F 'text=This+is+my+comment' \ 
    https://api.instagram.com/v1/media/{media-id}/comments 

따라서 access_token이나 텍스트는 URL의 일부인 POST 데이터가 아닙니다.

+0

감사합니다,하지만 난 '텍스트'를 httpRequest의 htmlBody로 넣어 문제를 해결할 수있었습니다. URL에 access_token을 넣을 수있었습니다. –

0

요청의 HTTPBody에 text = MYTEXT를 추가하기 만하면됩니다. 당신이 요청의 ContentType의 내용 유형을 변경해야 내가 hybridauth를 사용하고, 여기,이 코드 노력하고있다

NSMutableURLRequest *apiRequest = [[NSMutableURLRequest alloc] initWithURL:apiURL]; 
apiRequest.HTTPMethod = @"POST"; 

NSMutableData *body = [NSMutableData data]; 
[body appendData:[[NSString stringWithFormat:@"text=%@", MYTEXT] dataUsingEncoding:NSUTF8StringEncoding]]; 
apiRequest.HTTPBody = body; 

[NSURLConnection sendAsynchronousRequest:apiRequest queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
    // Handle the response. 
}]; 
+0

예, 나는 그것을 해결하기 위해 같은 방법을했습니다. 아래 내 답장을 참조하십시오. –

2

..

function setUserComment($post_id, $message) 
{ 
    $flag = 0; 
    $parameters = array("text" => $message); 
    $response = $this->api->post("media/$post_id/comments", $parameters);  

    // check the last HTTP status code returned 
    if ($this->api->http_code != 200){ 
     throw new Exception("Comment failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code)); 
    } 
    else{ 
     $flag = 1; 
    } 
    return $flag; 
} 
0

여기 키의 핵심은 ContentType 헤더입니다. 내가 그것을 정의하기 시작할 때까지 적어도 아무 것도 나를 위해 일하지 않았다. 내가 훨씬 쉽게 경로를 발견 https://dotnetthoughts.net/post-requests-from-azure-logic-apps/

: 여기에 설명 된 바와 같이 "multipart/form-data"를 사용하면 매우 복잡한 본문 내용을 설정해야합니다

당신이 "ContentType을"을 설정하면

가 헤더 설정 "내용 - 유형 ":"응용 프로그램/x-www-form-urlencoded를 "

와 당신은 = url_escaped (값) 키와 같은 간단한 요청 본문을 설정할 수 있습니다 텍스트 = 내 %의 20comment

관련 문제