API упоминания — пометить упоминание как READ

Используя API здесь: https://dev.mention.com/resources/alert_mentions/#put-accounts-id-alerts-alert-id-mentions-mention-id

Из того, что я понимаю, если я хочу отметить конкретное «упоминание» как прочитанное, я делаю что-то вроде этого:

$browser = new \Buzz\Browser(new \Buzz\Client\Curl);

$params = ['read' => true]; //tried this

$url = "https://api.mention.net/api/accounts/" . $this->getAccountId() . "/alerts/{$alert_id}/mentions/{$mention_id}";if(!empty($params))
{
$url .= '?' . http_build_query($params); //i think this isnt needed because i pass $params below to the $browser->put but it was worth a try.
}

$response = $browser->put($url, array(
"Authorization: Bearer {$this->getAccessToken()}",
"Accept: application/json",
), $params);

if (200 != $response->getStatusCode()) {
return false;
}

Тем не менее, когда я запускаю код, он не выдает никаких ошибок и infact возвращает действительный ответ, но флаг «read» по-прежнему имеет значение false.

Также попробовал:

$params = ['read' => 'true']; //tried this
$params = ['read' => 1]; //tried this

1

Решение

API упоминания принимает JSON в теле запроса: https://dev.mention.com/#request-format

Вы можете отметить упоминание как прочитанное следующим образом:

$params = ['read' => true];

// params are json encoded
$params = json_encode($params);

$response = $browser->put($url, array(
"Authorization: Bearer $token",
"Accept: application/json",
// the Content-Type header is set to application/json
"Content-Type: application/json",
), $params);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]