4 / 4 / 4
Регистрация: 14.03.2016
Сообщений: 38
1

Обращение к API посредством PHP

06.02.2017, 17:35. Показов 4863. Ответов 4
Метки нет (Все метки)

добрый день форумчане. Столкнулся с проблемой так как в пхп первый день.
есть сторонее апи к которому нужно обращаться получать токен а потом отправлять данные вместе с этим токеном, ответ сервера апи отдавать на клиент джисон файл типа все гуд или бэд. есть код и нужно немного помощи

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
$ref = $_SERVER['HTTP_REFERER'];
 
header('Access-Control-Allow-Origin: ' . $ref);
header('Access-Control-Allow-Methods: POST');
 
$name = $_POST['name'];
$tovar = $_POST['tovar'];
$price = $_POST['price'];
$userdata = $_POST['userdata'];
$usertel = $_POST['usertel'];
 
 
 
 
$url = "http://homeincubator.deloteka.com/api?method=auth&login=********&password=*************";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
$result = curl_exec($curl);
 
curl_close($curl);
 
 
$result //// нужно распарсить и достать token
 
 
$url = "http://homeincubator.deloteka.com/api";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'action=login&imembername=valenok&ipassword=ne_skaju&submit=%C2%F5%EE%E4');    // не понимаю каой синтаксис передачи данных data
$result1 = curl_exec($curl);
 
curl_close($curl);
 
 
 
 
echo $result1; // ввиде джисон ответ на клиент
 
 
 
data:{method:'contact_add',token:key,is_ur:0,name:div.name.val()+" "+div.tel.val()+" "+data.name,status:'Без статуса','property[Товар]':data.name,'property[Цена]':data.price.substring(5),'property[Данные пользователя]':place,'property[Телефон]':div.tel.val()},
 
 
 
 
?>
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2017, 17:35
Ответы с готовыми решениями:

Обращение к столбцам посредством переменной
Здравствуйте! Так заносит в столбец с именем 1 (имя столбца получили из POST запроса): ...

Обращение к элементам массива посредством указателей
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt;...

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

Паралельные вычисления на 4 потока посредством API
//VS 2013 или CodeBlocks С++ //Лабораторная №1 Нужно сделать то.что на рисунке применяя шаблон...

4
Эксперт PHP
3026 / 2537 / 1192
Регистрация: 14.05.2014
Сообщений: 7,109
Записей в блоге: 1
06.02.2017, 17:43 2
zlobobr, а теперь по-русски, не торопясь: что надо, что не получается? Из того что вы написали, понятно, что вам что-то непонятно.
0
4 / 4 / 4
Регистрация: 14.03.2016
Сообщений: 38
06.02.2017, 20:57  [ТС] 3
Трудность в том что я не до конца понимаю синтаксис пхп))

1 Нужно

отправить GET запрос на сервер вот такого вида
Javascript
1
var url=http://homeincubator.deloteka.com/api?method=auth&login=********&password=*************"

в ответ получить token или error

Примеры ответа:
{"state":"error","msg":"Invalid parameter: password"}
{"state":"success","token":"32b4cecdadfe9052f9f1248d26bc4d19 "}


После этого сделать pOST Запрос на апи с этим токеном и моими данными которые я распарсю из POST запроса.

желательно сделать CORC только с моего домена .

Добавлено через 6 минут
вот так на .js выглядит


Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   $.ajax({
    type:'GET',
   url: 'http://homeincubator.deloteka.com/api?method=auth&login=*********r&password=********* ',
     dataType : "json",                     // тип загружаемых данных
    success: function (datas, textStatus) { // вешаем свой обработчик на функцию success
 if(datas.state=='success') {
   var key = datas.token;
 
 
         $.ajax({  type:'POST',
 
                          url: 'http://homeincubator.deloteka.com/api',
           data:{method:'contact_add',token:key,is_ur:0,name:div.name.val()+" "+div.tel.val()+" "+data.name,status:'Без статуса','property[Товар]':data.name,'property[Цена]':data.price.substring(5),'property[Данные пользователя]':place,'property[Телефон]':div.tel.val()},
         dataType : "json",
          success: function (data, textStatus) {
             console.log(data);
 
                                                                                                        }
 
                                                                                                });
 
 
                                                                                            }
                                                                                        }
Добавлено через 2 часа 58 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
$ref = $_SERVER['HTTP_REFERER'];
 
header('Access-Control-Allow-Origin: ' . $ref);
header('Access-Control-Allow-Methods: POST');
 
$name = $_POST['name'];
$tovar = $_POST['tovar'];
$price = $_POST['price'];
$userdata = $_POST['userdata'];
$usertel = $_POST['usertel'];
 
 
 
$url = 'http://homeincubator.deloteka.com/api?method=auth&login=******r&password=*****';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
$result = curl_exec($curl);
 
curl_close($curl);
 
 
$obj=json_decode($result);
var_dump($obj);
$token=$obj->{'token'};
var_dump($token);         // NULL
 
 
$url1 = 'http://homeincubator.deloteka.com/api';
$curl1 = curl_init();
curl_setopt($curl1, CURLOPT_URL, $url1);
curl_setopt($curl1, CURLOPT_POST, 1);
curl_setopt($curl1, CURLOPT_POSTFIELDS, array('method'=>'contact_add','token'=>$token,'is_ur'=>0,'name'=>$name));
 
 
$result1 = curl_exec($curl1);
 
curl_close($curl1);
 
 
 
echo $result1;


не могу вытянуть token(( почему NULL?(
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
07.02.2017, 05:02 4
PHP
1
var_dump($obj);
что выдаёт?

Добавлено через 1 минуту
может так?
PHP
1
$token=$obj->token;
Добавлено через 21 секунду
может так?
PHP
1
$token=$obj->token;
0
4 / 4 / 4
Регистрация: 14.03.2016
Сообщений: 38
07.02.2017, 19:34  [ТС] 5
проблема была в настройках курла .спс всем уже разобрался
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2017, 19:34

Удаление записи из БД посредством PHP - PHP
помогите пожалуйста разобраться, почему мой скриптик не удаляет запись из бд? If (isset($_GET))...

Обращение клиента на сайт посредством пост-запроса: на какую из сторон ложится обязанность редиректа
Доброго всем времени суток! Для начала: я же правильно понимаю, что пост запрос не подразумевает...

Не могу расшифровать ответ API ВКонтакте посредством json
Доброго времени суток. Задача простейшая. Ввожу IP пользователя, хочу получить от сея ВК основные...

Windows API и передача сообщений между процессами посредством SEND_MESSAGE
Здравствуйте, уважаемые форумчане! Прошу помочь с передачей сообщений между процессами с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.