Высосать данные из VK api

Discussion in 'PHP' started by AlexChervon, 5 Dec 2015.

  1. AlexChervon

    AlexChervon New Member

    Joined:
    11 Nov 2015
    Messages:
    18
    Likes Received:
    0
    Reputations:
    0
    Я создал такой запрос
    <?php
    $vkid=$_POST['vkid'];//????? ?????? ?? ?????????
    $name=$_POST['name'];//????? ??? ???? ??? ????
    if( $curl = curl_init() ) {
    curl_setopt($curl, CURLOPT_URL, 'https://api.vk.com/method/users.get?');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, "user_id=туткарочайди");
    $out = curl_exec($curl);
    echo $out;
    curl_close($curl);
    }
    ?>

    получил информацию. и теперь допустим я хочу вывести только имя, как это сделать?
     
  2. gisdb

    gisdb New Member

    Joined:
    6 Dec 2015
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    echo $out["response"][0]["first_name"];
    вместо echo $out;
     
  3. cyberposting

    cyberposting New Member

    Joined:
    14 Nov 2015
    Messages:
    19
    Likes Received:
    3
    Reputations:
    0
    <?php
    if( $curl = curl_init() ) {
    curl_setopt($curl, CURLOPT_URL, 'https://api.vk.com/method/users.get?');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, "user_ids=331479035");
    $json = curl_exec($curl);
    $response = json_decode($json)->{'response'};
    echo($response[0]->{'first_name'});
    curl_close($curl);​
    }
    ?>
     
  4. AlexChervon

    AlexChervon New Member

    Joined:
    11 Nov 2015
    Messages:
    18
    Likes Received:
    0
    Reputations:
    0
    делаю, выходит ошибка 500
     
  5. AlexChervon

    AlexChervon New Member

    Joined:
    11 Nov 2015
    Messages:
    18
    Likes Received:
    0
    Reputations:
    0
    выдает только вот это "{"
     
  6. gisdb

    gisdb New Member

    Joined:
    6 Dec 2015
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Вот кусок моего 100% рабочего кода

    $ch2 = curl_init();
    curl_setopt ($ch2, CURLOPT_URL, "https://api.vk.com/method/users.get?user_ids=".$op."&fields=photo_50,online&access_token=$token");
    curl_setopt ($ch2, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt ($ch2, CURLOPT_RETURNTRANSFER, TRUE);
    $result2 = curl_exec ($ch2);
    curl_close($ch2);
    $json2 = json_decode($result2, 1);
    $fio = iconv("utf-8", "windows-1251", $json2["response"][0]["first_name"]);
    echo $fio;
     
    AlexChervon likes this.
  7. cyberposting

    cyberposting New Member

    Joined:
    14 Nov 2015
    Messages:
    19
    Likes Received:
    3
    Reputations:
    0
    Смотрите отчего лезет 500. Я так понимаю, с web-сервера запускаете. Может JSON не установлен.
    Запустите с командной строки. Я проверял перед тем как выложить.
     
  8. eset

    eset New Member

    Joined:
    4 Dec 2015
    Messages:
    7
    Likes Received:
    2
    Reputations:
    0
    print_r попробуй весь массив посмотри
     
  9. cyberposting

    cyberposting New Member

    Joined:
    14 Nov 2015
    Messages:
    19
    Likes Received:
    3
    Reputations:
    0
    ВК возвращает данные в формате JSON. Ну этож строка. Чтобы получить из строки объект - нужно json_decode.
     
  10. Timon132009

    Timon132009 Member

    Joined:
    7 Jun 2009
    Messages:
    137
    Likes Received:
    19
    Reputations:
    0
    мне кажется проще заюзать XML

    Для ТС:
     
  11. Aidos

    Aidos New Member

    Joined:
    18 Dec 2015
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Code:
    <?php
    function get_web_page( $url )
    {
      $uagent = "Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14";
    
      $ch = curl_init( $url );
    
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
      curl_setopt($ch, CURLOPT_HEADER, 0);           // не возвращает заголовки
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам
      curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch, CURLOPT_USERAGENT, $uagent);  // useragent
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
      curl_setopt($ch, CURLOPT_TIMEOUT, 120);        // таймаут ответа
      curl_setopt($ch, CURLOPT_MAXREDIRS, 10);       // останавливаться после 10-ого редиректа
      $content = curl_exec( $ch );
      $err     = curl_errno( $ch );
      $errmsg  = curl_error( $ch );
      $header  = curl_getinfo( $ch );
      curl_close( $ch );
      $header['errno']   = $err;
      $header['errmsg']  = $errmsg;
      $header['content'] = $content;
      return $header;
    }
        $vkid=$_POST['vkid']; // ID
    
        $result = get_web_page( "https://api.vk.com/method/users.get?user_id=$vkid" );
        $page = $result['content'];  
        $obj=json_decode($page);
        $first_name = $obj->response[0]->first_name;
        $last_name = $obj->response[0]->last_name;
        $uid = $obj->response[0]->uid;
        echo $first_name;
        echo "<br />";
        echo $last_name;
        echo "<br />";
        echo $uid;
    ?>
    Вот держи 100% рабочий вариант :)
     
  12. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    что то вы наркоманите. есть готовые юзабельные либы для работы с вк апи. http://habrahabr.ru/post/221949/