vk api если ответ совпадает, если нет

199
01 июня 2017, 10:36

Как сделать так, чтобы, если приходит ответ сервера от VK API {"response":1}, то выполнялся код который в if. Если это не так то else.

Не рабочий код, при всех значениях он выводит то что в if.

<?php 
if (!isset($_REQUEST)) { 
  return; 
} 
//Ключ доступа сообщества 
$token = 'My key'; 
//Получаем и декодируем уведомление 
$data = json_decode(file_get_contents('php://input')); 
//Проверяем, что находится в поле "type" 
switch ($data->type) { 
//Если это уведомление о новом сообщении... 
  case 'message_new': 
    //...получаем id его автора 
    $user_id = $data->object->user_id; 
//С помощью groups.isMember и токена сообщества получаем ответ
    $request_params = array( 
      'group_id' => 147190614, 
      'user_id' => $user_id, 
      'access_token' => $token, 
      'v' => '5.0' 
    ); 
$get_params = http_build_query($request_params);
$getting = file_get_contents('https://api.vk.com/method/groups.isMember?'. $get_params);
if ($getting = 1) {
    //С помощью messages.send и токена сообщества отправляем ответное сообщение 
    $request_params = array( 
      'message' => "Hello, asddsa!", 
      'user_id' => $user_id, 
      'access_token' => $token, 
      'v' => '5.0' 
    ); 
$get_params = http_build_query($request_params); 
file_get_contents('https://api.vk.com/method/messages.send?'. $get_params); 
} else {
    //С помощью messages.send и токена сообщества отправляем ответное сообщение 
    $request_params = array( 
      'message' => "GODBAY!", 
      'user_id' => $user_id, 
      'access_token' => $token, 
      'v' => '5.0' 
    ); 
$get_params = http_build_query($request_params); 
file_get_contents('https://api.vk.com/method/messages.send?'. $get_params); 
}
//Возвращаем "ok" серверу Callback API 
    echo('ok'); 
break; 
} 
?> 
Answer 1
  1. Конструкция $getting = 1 является присваиванием и, в данном случае, проверка получается такая if(1){..., а 1==true.
  2. После

    $getting = file_get_contents('https://api.vk.com/method/groups.isMember?'. $get_params);
    

переменная $gettings будет равна полному ответу, то есть {"response":1}

Следовательно вам надо либо сравнивать так if($gettings=='{"response":1}'){..., что неправильно, либо сперва достать из json'а значение ответа. Смотрите в сторону функции json_decode

READ ALSO
Обьекто-ориентированный код на PHP

Обьекто-ориентированный код на PHP

Здравствуйте, я java разработчик и недавно пришлось сесть на бэкенд и писать на phpНо мне не нравится процедурный стиль кода

208
Промежуточное API

Промежуточное API

Есть API сайта, но API привязано к IP адресу клиентаА так как для сайта разрабатывает мобильное приложение (где у клиентов будут разные IP), то нужно...

225
обрезка строки в php до символа под номером

обрезка строки в php до символа под номером

Как обрезать строку в php до конкретного символа?

184
Две формы на одной странице yii2

Две формы на одной странице yii2

Как сделать две разные формы на одной странице?

697