За последние 24 часа нас посетили 18064 программиста и 1700 роботов. Сейчас ищет 1501 программист ...

VK.COM

Тема в разделе "PHP для новичков", создана пользователем Svoloch_196, 29 окт 2013.

  1. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Картинка с параметром "extra" и без:
    http://cs537313.vk.me/u233400288/docs/60393d467757/DvaPalts ... mXU7uC_vag
    http://cs537313.vk.me/u233400288/docs/60393d467757/DvaPaltsa.gif
    Вторую картинку я вижу везде, со всех браузеров, даже с тех, в которых я никогда не был залогинен вконтакте. У вас же откроется только первая. Щито? Как такое возможно?
     
  2. lor08

    lor08 Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    98
    Симпатии:
    0
    Пытаюсь получить видео с ВК при помощи класса скаченнового с ВК, выдаёт вот такую ошибку:
    В чём может быть дело?!
     
  3. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Именно в том, что написано:
     
  4. lor08

    lor08 Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    98
    Симпатии:
    0
    Так всё нормально работает!
    При запросах к профилю, выводить любые данные на ура!
    Но если пытаюсь получить меди файл, то вылезает эта ошибка!
     
  5. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    подозрева, что обращение за файлом происходит куда-то на сторону, где и отпинывает, т.е. нужно узнать как представиться тому сервису, что ты уже вошедши, а не из-за леса из-за гор.
     
  6. Alex1980

    Alex1980 Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    3
    Симпатии:
    0
    Всем привет. Подскажите пожалуйста, как выдернуть из такого ответа все значения creator_name

    Код (Text):
    1. {"response":
    2. [
    3.  
    4. {"page":{
    5. "pid":311149,
    6. "title":"Свежие новости2",
    7. "edited":"2008-11-19 13:46:45",
    8. "created":"2008-11-19 13:46:45",
    9. "group_id":683495,
    10. "editor_id":1,
    11. "editor_name":
    12. "Павел Дуров",
    13. "creator_id":1,
    14. "creator_name":
    15. "Павел Дуров",
    16. "who_can_view":2,
    17. "who_can_edit":0}},
    18. {"page":{
    19. "pid":311163,
    20. "title":"Свежие новости28",
    21. "edited":"2008-11-19 13:47:39",
    22. "created":"2008-11-19 13:47:39",
    23. "group_id":683495,"editor_id":1,
    24. "editor_name":"Павел Дуров",
    25. "creator_id":1,
    26. "creator_name":
    27. "Павел Дуров",
    28. "who_can_view":2,
    29. "who_can_edit":0}}
    30. ]}
     
  7. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    json_decode
     
  8. iRusel

    iRusel Новичок

    С нами с:
    23 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    Код (Text):
    1. $test = json_decode($otvet, true);
    2. echo $test['creator_name'];
    Как-то так.
     
  9. Svoloch_196

    Svoloch_196 Активный пользователь

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    VKontakte. Подписан ли человек на группу

    Подскажите как реализовать, у меня стоит на сайте код сообщества "Вконтакте" вот код:

    Код (Text):
    1.  
    2. <script type="text/javascript" src="//vk.com/js/api/openapi.js?113"></script>
    3.  
    4. <!-- VK Widget -->
    5. <div id="vk_groups"></div>
    6. <script type="text/javascript">
    7. VK.Widgets.Group("vk_groups", {mode: 0, width: "672", height: "200", color1: 'FFFFFF', color2: '2B587A', color3: '5B7FA6'}, 1);
    8. </script>
    Подскажите как получить ответ от сервера "Вконтакте" что человек подписан или нет, допустим если человек подписан на группу ответ = 1, а если не подписан или не состоит в ней то ответ = 0, подскажите возможно такое сделать ?
     
  10. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    так должен был же итак получить ответ не?
     
  11. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    Вконтакте API

    Привет!
    Использую найденный на просторах интернета замечательный класс для постинга на стену через Вконтакте API, так вот встала проблема, постятся сообщения только не более 10 предложений, но всегда по разному, иногда чуть меньше иногда чуть больше, 10 - взял среднее. Вроде бы поддержка вконтакте заявляет, что в сообщение можно запендюрить до 16000+ символов.
    Так вот, хочу посмотреть на возвращаемую сервером ошибку, но не знаю, как это сделать.
    Если поможете - буду очень благодарен!

    Ниже привожу класс для постинга:

    Код (Text):
    1. <?php
    2. class VKPublic
    3. {
    4.     protected $groupId, $appId, $secretKey, $accessToken, $accessSecret;
    5.  
    6.     /**
    7.      * @param int $groupId
    8.      * @param int $appId
    9.      * @param string $secretKey
    10.      */
    11.     public function __construct($groupId, $appId, $secretKey)
    12.     {
    13.         $this->groupId = $groupId;
    14.         $this->appId = $appId;
    15.         $this->secretKey = $secretKey;
    16.     }
    17.  
    18.     /**
    19.      * @param string $accessToken
    20.      * @param string $accessSecret
    21.      */
    22.     public function setAccessData($accessToken, $accessSecret)
    23.     {
    24.         $this->accessToken = $accessToken;
    25.         $this->accessSecret = $accessSecret;
    26.     }
    27.  
    28.     /**
    29.      * Hack
    30.      */
    31.     public function getAccessData()
    32.     {
    33.         echo "<!doctype html><html><head><meta charset='utf-8'></head>
    34.             <body><a href='https://oauth.vk.com/authorize?" .
    35.             "client_id={$this->appId}&scope=offline,wall,groups,pages," .
    36.             "photos,docs,audio,video,notes,stats,messages,notify,notifications,nohttps&" .
    37.             "redirect_uri=https://oauth.vk.com/blank.html&response_type=code'
    38.                 target='_blank'>Получить CODE</a><br>Ссылка для получения токена:<br>
    39.                 <b>https://oauth.vk.com/access_token?client_id={$this->appId}" .
    40.             "&client_secret={$this->secretKey}&code=CODE</b></body></html>";
    41.  
    42.         exit;
    43.     }
    44.  
    45.     /**
    46.      * @param string $method
    47.      * @param mixed $parameters
    48.      * @return mixed
    49.      */
    50.     public function callMethod($method, $parameters)
    51.     {
    52.         if (!$this->accessToken) return false;
    53.         if (is_array($parameters)) $parameters = http_build_query($parameters);
    54.         $queryString = "/method/$method?$parameters&access_token={$this->accessToken}";
    55.         $querySig = md5($queryString . $this->accessSecret);
    56.         return json_decode(file_get_contents(
    57.             "http://api.vk.com{$queryString}&sig=$querySig"
    58.         ));
    59.     }
    60.  
    61.     /**
    62.      * @param string $message
    63.      * @param bool $fromGroup
    64.      * @param bool $signed
    65.      * @return mixed
    66.      */
    67.     public function wallPostMsg($message, $fromGroup = true, $signed = false)
    68.     {
    69.         return $this->callMethod('wall.post', array(
    70.             'owner_id' => -1 * $this->groupId,
    71.             'message' => $message,
    72.             'from_group' => $fromGroup ? 1 : 0,
    73.             'signed' => $signed ? 1 : 0,
    74.         ));
    75.     }
    76.  
    77.     /**
    78.      * @param string $attachment
    79.      * @param null|string $message
    80.      * @param bool $fromGroup
    81.      * @param bool $signed
    82.      * @return mixed
    83.      */
    84.     public function wallPostAttachment($attachment, $message = null, $fromGroup = true, $signed = false)
    85.     {
    86.         return $this->callMethod('wall.post', array(
    87.             'owner_id' => -1 * $this->groupId,
    88.             'attachment' => strval($attachment),
    89.             'message' => $message,
    90.             'from_group' => $fromGroup ? 1 : 0,
    91.             'signed' => $signed ? 1 : 0,
    92.         ));
    93.     }
    94.  
    95.     /**
    96.      * @param string $file relative file path
    97.      * @return mixed
    98.      */
    99.     public function createPhotoAttachment($file)
    100.     {
    101.         $result = $this->callMethod('photos.getWallUploadServer', array(
    102.             'gid' => $this->groupId
    103.         ));
    104.  
    105.         $ch = curl_init($result->response->upload_url);
    106.         curl_setopt($ch, CURLOPT_HEADER, false);
    107.         curl_setopt($ch, CURLOPT_POST, true);
    108.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    109.         curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    110.             'photo' => '@' . getcwd() . '/' . $file
    111.         ));
    112.  
    113.         if (($upload = curl_exec($ch)) === false) {
    114.             throw new Exception(curl_error($ch));
    115.         }
    116.  
    117.         curl_close($ch);
    118.         $upload = json_decode($upload);
    119.         $result = $this->callMethod('photos.saveWallPhoto', array(
    120.             'server' => $upload->server,
    121.             'photo' => $upload->photo,
    122.             'hash' => $upload->hash,
    123.             'gid' => $this->groupId,
    124.         ));
    125.  
    126.         return $result->response[0]->id;
    127.     }
    128.  
    129.     public function combineAttachments()
    130.     {
    131.         $result = '';
    132.         if (func_num_args() == 0) return '';
    133.         foreach (func_get_args() as $arg) {
    134.             $result .= strval($arg) . ',';
    135.         }
    136.         return substr($result, 0, strlen($result) - 1);
    137.     }
    138. }
    139. ?>
    И, собственно, использование (подразумевает наличие соответственных токенов):

    Код (Text):
    1. require_once 'vkClass.php';
    2.  
    3. $public = new VKPublic($groupId, $appId, $secretKey);
    4. $public->setAccessData($accessToken, $accessSecret);
    5.  
    6. $attachments = $public->combineAttachments(
    7.     $public->createPhotoAttachment($img),
    8.     $link
    9. );
    10.  
    11. $public->wallPostAttachment($attachments, $text);
     
  12. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Re: Вконтакте API

    в сообщение - да, но в переменную HTTP GET - вряд ли. Для вызова метода, класс использует функцию file_get_contents, которой передает длиннющий URL. Вместо такого URL для длинных запросов лучше использовать метод POST. Передать данные POST через file_get_contents можно с помощью stream_context_create.
     
  13. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    Переписал CallMethod - но действовал в слепую, не особо осозовая, что делаю :) не фурычит)
    Need Help!)))

    Код (Text):
    1. public function callMethod($method, $parameters)
    2.     {
    3.         if (!$this->accessToken) return false;
    4.        
    5.         if (is_array($parameters)) $parameters2 = http_build_query($parameters);
    6.         $queryString = "/method/$method?$parameters2&access_token={$this->accessToken}";
    7.         $querySig = md5($queryString . $this->accessSecret);
    8.        
    9.         $parameters['access_token'] = $this->accessToken;
    10.         $parameters['sig'] = $querySig;
    11.        
    12.         $options = array(
    13.         'http'=>array(
    14.         'method'=>"POST",
    15.         'header'=>
    16.         "Accept-language: en\r\n".
    17.         "Content-type: application/x-www-form-urlencoded\r\n",
    18.         'content'=>http_build_query($parameters)
    19. ));
    20.  
    21. $context = stream_context_create($options);
    22. return json_decode(fopen('http://api.vk.com/method/wall.post',false,$context));
    23.     }
     
  14. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    =>
    Код (Text):
    1. file_get_contents('http://api.vk.com/method/wall.post',false,$context');
    на первый взгляд, ошибок нет.
    бесполезный заголовок.
     
  15. donvasin

    donvasin Новичок

    С нами с:
    29 апр 2014
    Сообщения:
    25
    Симпатии:
    0
    [vs], в любом случае спасибо!
    К сожалению, пока проблема актуальна.
    Будет время, вернусь к ней.
    Если разберусь, напишу!
     
  16. Mega94

    Mega94 Новичок

    С нами с:
    17 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Парсинг видео с vk

    Привет всем форумчани сталкивался на такую проблему при парсинге видео с vk, а как получать прямые ссылки на видео в формате
    Код (Text):
    1. json_decode
    вот код
    Код (Text):
    1. if ($token!="") {
    2.         $resp = json_decode(file_get_contents('https://api.vk.com/method/video.search?&q='.urlencode($query).'&sort='.$sort.'&count='.$count.'&hd='.$hd.'&access_token='.$token));
    3.         }
    4.         print_r ($resp);
    а результат такой

    Код (Text):
    1. stdClass Object
    2. (
    3.     [response] => Array
    4.         (
    5.             [0] => stdClass Object
    6.                 (
    7.                     [id] => 169297081
    8.                     [title] => Call Of Duty: MW 3 (OST Eminem)  
    9.                     [description] =>
    10.                     [owner_id] => 62081877
    11.                     [duration] => 91
    12.                     [date] => 1406371079
    13.                     [thumb] => http://cs12904.vk.me/u95224081/video/m_271d3cea.jpg
    14.                     [image_medium] => http://cs12904.vk.me/u95224081/video/l_c9e13f98.jpg
    15.                     [player] => http://vk.com/video_ext.php?oid=62081877&id=169297081&hash=b55f134872a71aa3
    16.                 )
    17.  
    18.         )
    19.  
    20. )
    но как так то вить ссылки находиться в
    Код (Text):
    1. files: {
    2. mp4_240: 'http://cs12904v4....hs7rVdnMekdKhwq1n',
    3. mp4_360: 'http://cs12904v4....hs7rVdnMekdKhwq1n',
    4. mp4_480: 'http://cs12904v4....hs7rVdnMekdKhwq1n',
    5. mp4_720: 'http://cs12904v4....hs7rVdnMekdKhwq1n'
    6. },
    http://stg745.rusfolder.com/preview/20140731/4/41341984_3_1215504.jpg
     
  17. Mega94

    Mega94 Новичок

    С нами с:
    17 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    прямая авторизация вконтакте

    Привет всем форумчанам подскажите как достать токен с имени официального приложении android'a пробовал такую ссылку
    Код (Text):
    1. oauth.vk.com/authorize?client_id=2274003&v=5.0&scope=wall,offline&redirect_uri=http://oauth.vk.com/blank.html&display=page&response_type=token
    client_id=2274003 - тот самый id официального приложении android'a
    выдает грозный
    Код (Text):
    1. {"error":"invalid_access","error_description":"Security issue"}
    =) подскажете кто знает очень надо спасибо
     
  18. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Re: прямая авторизация вконтакте

    Я не знаю как там, вконтактах, но токен - должен генерироваться, и получить его можно только слушая трафик.
     
  19. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  20. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Почему не получаеться зайти на сайт vk.com через curl_init

    Почему не получается зайти на сайт vk.com через curl_init
     
  21. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Почему не получаеться зайти на сайт vk.com через curl_in

    потому что ты чтото делаешь неправильно или вконтактику ты показался ботом)
     
  22. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Почему не получаеться зайти на сайт vk.com через curl_in

    Видимо из-за их защиты, сравни заголовки которые ты отправляешь через curl и какие отправляет твой браузер.
    У vk есть api, используй его.
     
  23. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Re: Почему не получаеться зайти на сайт vk.com через curl_in

    Я представился экспоером старым ))))) Mozilla/5.0 заработало

    Добавлено спустя 9 минут 37 секунд:
    Re: Почему не получаеться зайти на сайт vk.com через curl_init
    Кто нить может помочь регуляркой для получения текста из статуса
     
  24. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  25. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Re: Почему не получаеться зайти на сайт vk.com через curl_in

    не регуляркой проще