Работа с API, как: отправить запрос для авторизации на сторонний сервер, передать параметр и получить ответ?

PS
На сайте с 20.02.2015
Offline
46
432

Я не программист! )) Думаю, начать нужно именно с этих слов.

Итак, друзья, есть необходимость подключить сайт к стороннему API, сообщить этому API через JSON параметр "text1" (отправить с формы находящейся на моем сайте) и получить URL по которому можно скачать результат.

"text1" - произвольный текст, который вручную задаётся на моей стороне (на моем сайте).

На выходе, по идее, я должен через POST получить URL с результатом работы этого самого API :-)

Как я понял, подключение к API происходит через GET

GET https://site.com/api/me?api_key=MY_API_KEY

И здесь начинаются непонятки )) Как это реализовать?

  • Где и как "вписать" эту строку с GET для авторизации?
    GET https://site.com/api/me?api_key=MY_API_KEY
  • Как отправить злополучный параметр text1 через JSON?
  • Как получить ответ?

На данный момент. мой скудны интеллект придумал только файл index.php с кодом:

<html>

<body>
<form method="GET">
Заголовок: <input type="text" name="text1">
<input type="submit" value="Запуск!">
</form>

<?php
/* Здесь я вывожу текст для проверки на ошибки/опечатки, мало ли что... */
echo "<br/>Заголовок - ". $_GET['text1'];
?>

</body>
</html>

Прошу помощи в решении вопроса :beer:

Спасибо и с уважением !

keepersheet
На сайте с 21.06.2016
Offline
55
#1

А вы уверены, что веб-страничка "стороннего API" не предоставляет вас подробную доку относительного того, что и как нужно сделать? Прошу понять правильно, логика API такова, какова логика его программистов - что вложат, то и получите на выходе. Угадать, не обладая экстрасенсорными способностями, непросто.

Например, некоторое время назад, обращаясь к API Яндекс-Метрика, возможно было передавать токен и id в параметрах вот таким образом, получая в ответ JSON:

$obj = json_decode(file_get_contents('https://api-metrika.yandex.ru/stat/v1/data?id=**********&dimensions=ym:s:externalRefererPathLevel1&metrics=ym:s:visits&oauth_token=*****************************'), true);

, затем яндексовые прогеры решили, что не комильфо, и теперь авторизоваться необходимо по токену в HTTP-заголовке, как-нибудь так:

<?
function curl_file_get_contents($url)
{
$authToken = '**************************';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-yametrika+json', 'Authorization: OAuth' . $authToken]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$obj = curl_exec($ch);
curl_close($ch);
return $obj;

Мой совет - взгляните документацию API, быть того не может, чтобы таковая не была представлена. Что будет непонятно - спросите здесь.

Веб-разработка на ruby и php (https://masterpro.ws/)
PS
На сайте с 20.02.2015
Offline
46
#2
keepersheet:

Мой совет - взгляните документацию API, быть того не может, чтобы таковая не была представлена. Что будет непонятно - спросите здесь.

Спасибо,ок ))

Мне непонятно, как авторизоваться на сервере с API имея API_KEY? В документации сказано:

Совершая запрос к любому из методов нашего API, для авторизации отправляйте query-параметр api_key

и приводят пример: "GET https://website.ru/api/me?api_key=MY_API_KEY"

MY_API_KEY у меня есть.

Суть вопроса, как мне отправить qwery-параметр?

...куда мне вписать

GET https://website.ru/api/me?api_key=MY_API_KEY
??

Первое, что приходит в голову - это переписать эту строку в свиток и отправить вороном на север ))) но, предположу, это не будет иметь должного смысла и у меня нет ворона (

И прошу обратить внимание, топик я начал со слов "Я не программист!" :-)

keepersheet
На сайте с 21.06.2016
Offline
55
#3

Скопируйте "в свиток" первый пример моего кода, замените https на свой, не забудьте тег php и подставить api_key.

Далее добавьте строчку

print_r($obj);

и откройте файл (он на веб-сервере у вас, надеюсь?) в браузере. Че-нить отвечает вам API?

PS
На сайте с 20.02.2015
Offline
46
#4
keepersheet:
Скопируйте "в свиток" первый пример моего кода, замените https на свой, не забудьте тег php и подставить api_key.
Далее добавьте строчку

print_r($obj);


и откройте файл (он на веб-сервере у вас, надеюсь?) в браузере. Че-нить отвечает вам API?

Ухх! Кудесник!

Много-много строчек с Array и разными личными данными ))

keepersheet
На сайте с 21.06.2016
Offline
55
#5

Замечательно, стало быть, ответ на первый вопрос вы теперь знаете:

ProfitStarter:
Где и как "вписать" эту строку с GET для авторизации?

Но дальше вы не даете нужной информации, поэтому сложнее.

Никто ведь здесь не угадает, какой именно метод вам необходимо использовать:


Совершая запрос к любому из методов нашего API, для авторизации отправляйте query-параметр api_key

Еще раз повторяю, все это безусловно присутствует в документации разработчика. Если сумеете правильно сформулировать, вполне возможно, вам и скажут здесь на форуме, как решить элементарную эту задачку... сорь, убегаю.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий