5

我请求的网址是https://api.instagram.com/v1/media/MYMEDIA_ID/comments?access_token=MYTOKEN&text=MYTEXT

我收到这样的回复:

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

在 Instagram 文档中,它说评论 API 采用两个参数:textaccess_token. 我两者都提供了,但我收到错误消息说text丢失了。

我尝试过使用不同的符号而不是&但没有任何效果。有没有人知道text参数应该如何出现在请求的 URL 上?

非常感谢 !

4

5 回答 5

2

我正在使用hybridauth,这是代码,它正在工作..

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;
}
于 2012-10-06T11:44:31.097 回答
0

您需要更改请求 ContentType="comment" 的内容类型

于 2013-06-22T22:24:59.287 回答
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 数据。

于 2012-03-22T03:32:35.363 回答
0

只需将 text=MYTEXT 添加到您请求的 HTTPBody。

这是示例代码:

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.
}];
于 2012-04-10T07:17:06.713 回答
0

我相信这里的关键是 ContentType 标头。至少在我开始定义它之前,没有什么对我有用。

如果设置“ContentType”:“multipart/form-data”,则需要设置相当复杂的正文内容,如下所述: https ://dotnetthoughts.net/post-requests-from-azure-logic-apps/

我发现了更简单的路径:设置标题“Content-Type”:“application/x-www-form-urlencoded”

然后您可以将请求正文设置为简单的 key=url_escaped(value): text=My%20comment

于 2017-08-28T13:05:47.300 回答