Суть проблемы: Есть приложение для работы с CRM Битрикс 24, Если очистить все куки и сессии на машине пользователя или просто открыть сайт в режиме инкогнито, то при выполении запроса: https://mydomain.bitrix24.ru/oauth/authorize/?response_type=code&client_id=<ID клиента>&redirect_uri<СВОЙ УРЛ> Происходит редирект на https://auth2.bitrix24.net/oauth/authorize/ а должен по сути возвращать код авторизации для дальнейшего получения access_token?
Смысли использовать тогда API если я должен в CRM с каждой машины авторизовываться через браузер?
Что вы видите по ссылке? форма авторизации. Потомучто вы не авторизованы на моем портале, PHP тоже не авторизован.
ТС нужно пройти авторизацию на портале, посредством CURL например.
Код
$post = http_build_query([
'AUTH_FORM' => 'Y',
'TYPE' => 'AUTH',
'backurl' =>'/auth/',
'USER_LOGIN' => $login,
'USER_PASSWORD' => $pass,
'USER_REMEMBER' => 'Y'
]);
$ch = curl_init();
if(strtolower((substr($url,0,5))=='https')) { // если соединяемся с https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
curl_setopt($ch, CURLOPT_URL, $url);
// откуда пришли на эту страницу
curl_setopt($ch, CURLOPT_REFERER, $url);
//запрещаем делать запрос с помощью POST и соответственно разрешаем с помощью GET
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//отсылаем серверу COOKIE полученные от него при авторизации
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/restapi/cookie.txt');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
$result = curl_exec($ch);
curl_close($ch);
return $result;