мне может потребоваться доступ к api-настройкам api с POST-действием в php.
Но я всегда получаю эту ошибку: не удалось открыть поток: HTTP-запрос не удался! HTTP/1.0 415 Неподдерживаемый тип носителя
Вот мой код:
public function addDelegates($account,$delegates,$domain,$tokken) {
foreach ($delegates as $key => $value) {
sleep(5);
$url = "https://apps-apis.google.com/a/feeds/emailsettings/2.0/".$domain."/".$account."/delegation";
$requestXML = '<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
<apps:property name="address" value="' . $value . '" />
</atom:entry>';
$requestHeaders = array(
'Content-type: application/xml+atom',
'Accept: application/xml+atom',
sprintf('Content-Length: %d', strlen($requestXML))
);
$context = stream_context_create(
array(
'http' => array(
'method' => 'POST',
'header' => implode("\r\n", $requestHeaders),
'content' => $requestXML,
)
)
);
$responseXML = file_get_contents($url, false, $context);
}
Я видел, что эта ошибка означает, что я могу отправить неправильный тип контента. Но я пробовал приложение /json, application/xml, text/xml и т.д.
Ничего не известно о том, какие данные мы должны отправлять в emailSettings api doc:/
Заранее спасибо.
Я думаю, что тип контента в вашем опубликованном коде неверен. измените тип содержимого на "application/atom + xml" вместо application/xml + atom. Это должно устранить вашу ошибку 415.