PHP Curl Basic OAuth Получение токена доступа

1

Я пытался получить токен доступа из API, предоставляемого индийским Market Flipkart. Если я запустил curl-код в Putty SSH, я могу получить токен доступа. Но если я пытаюсь сделать то же самое с PHP, то даю мне 400 ошибок,

Код, используемый в SSH (This Works)

curl -u appid:appsecret https://api.flipkart.net/oauth-service/oauth/token\?grant_type\=client_credentials\&scope=Seller_Api

Я получаю ответ

{"access_token":"1111-xxxx-22222","token_type":"bearer","expires_in":4926731,"scope":"Seller_Api"}

Но когда я пытаюсь достичь того же, используя PHP Curl (который я узнал только онлайн), я получаю 400 ошибок

Используемый код PHP (это не работает)

<?php
$username='appid';
$password='appsecret';
$url='https://api.flipkart.net/oauth-service/oauth/token\?grant_type\=client_credentials\&scope=Seller_Api';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
$output = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
$info = curl_getinfo($ch);
curl_close($ch);

if(curl_errno($ch)){   
    echo 'Curl error: ' . curl_error($ch);
}
print_r($output);
echo $status_code;
?>

Нет другого выхода, а не 400 (код состояния), который является плохим запросом.

Я знаю, что я рядом, я не знаю, что я делаю неправильно. Любая помощь будет оценена по достоинству.

PS: вы можете найти API-документы здесь https://seller.flipkart.com/api-docs/FMSAPI.html#third-party-application-integration

  • 1
    Подождите - вы получаете ошибку 400 или 404? Ваш вопрос говорит как
  • 0
    Мой плохой это только ошибка 400, я исправлю это.
Показать ещё 2 комментария
Теги:
curl
authentication
oauth

1 ответ

0

Я, наконец, смог решить проблему, url, о котором они упоминали в своих документах, не работает, когда мы пытаемся сделать то же самое, используя php curl.

Фразировка URL-адреса отличается в случае php

Таким образом, URL должен был быть $ url = ' https://api.flipkart.net/oauth-service/oauth/token?grant_type=client_credentials&scope=Seller_Api ';

и вуаля, я получил свой токен доступа.

PS: Пожалуйста, не думайте, что я был нетерпелив и задал вопрос слишком рано, прежде чем оглядываться, это мой второй день, борясь с той же проблемой. Но мне повезло сегодня;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню