За последние 24 часа нас посетили 18146 программистов и 1699 роботов. Сейчас ищут 1503 программиста ...

VK.COM

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

  1. DieseL.cfg

    DieseL.cfg Новичок

    С нами с:
    22 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    спасибо, очень помогло)
    с задачей справился)
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Как? Я тоже новичок, и хочу знать?
     
  3. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    mahmuzar, может ulogin.ru подойдёт
     
  4. Scogzhe

    Scogzhe Зэк
    [ БАН ]

    С нами с:
    4 фев 2015
    Сообщения:
    109
    Симпатии:
    0
  5. Sharax

    Sharax Новичок

    С нами с:
    12 сен 2015
    Сообщения:
    2
    Симпатии:
    0
    Всем привет! Настроил автопостинг в свой паблик, но не постит картинки. (Обычне сообщения постит)
    Ипользую всем известный класс для работы с vk api.
    Ниже код и собственно сами ошибки

    Код (PHP):
    1. <?
    2. ini_set('display_errors', 'On'); // сообщения с ошибками будут показываться
    3.  
    4. $group_id = *********;
    5. $conf_app_id = *********;
    6. $conf_secret = "*********";
    7. $access_token = "*********";
    8. $secret = "*********";
    9.  
    10.  
    11. class VKPublic
    12. {
    13.     protected $groupId, $appId, $secretKey, $accessToken, $accessSecret;
    14.  
    15.  
    16.     public function __construct($groupId, $appId, $secretKey)
    17.     {
    18.         $this->groupId = $groupId;
    19.         $this->appId = $appId;
    20.         $this->secretKey = $secretKey;
    21.     }
    22.  
    23.  
    24.     public function setAccessData($accessToken, $accessSecret)
    25.     {
    26.         $this->accessToken = $accessToken;
    27.         $this->accessSecret = $accessSecret;
    28.     }
    29.  
    30.  
    31.  
    32.     public function callMethod($method, $parameters)
    33.     {
    34.         if (!$this->accessToken) return false;
    35.         if (is_array($parameters)) $parameters = http_build_query($parameters);
    36.         $queryString = "/method/$method?$parameters&access_token={$this->accessToken}";
    37.         $querySig = md5($queryString . $this->accessSecret);
    38.         return json_decode(file_get_contents(
    39.             "http://api.vk.com{$queryString}&sig=$querySig"
    40.         ));
    41.     }
    42.  
    43.  
    44.     public function wallPostMsg($message, $fromGroup = true, $signed = false)
    45.     {
    46.         return $this->callMethod('wall.post', array(
    47.             'owner_id' => -1 * $this->groupId,
    48.             'message' => $message,
    49.             'from_group' => $fromGroup 1 : 0,
    50.             'signed' => $signed 1 : 0,
    51.         ));
    52.     }
    53.  
    54.  
    55.     public function wallPostAttachment($attachment, $message = null, $fromGroup = true, $signed = false)
    56.     {
    57.         return $this->callMethod('wall.post', array(
    58.             'owner_id' => -1 * $this->groupId,
    59.             'attachment' => strval($attachment),
    60.             'message' => $message,
    61.             'from_group' => $fromGroup 1 : 0,
    62.             'signed' => $signed 1 : 0,
    63.         ));
    64.     }
    65.  
    66.  
    67.     public function createPhotoAttachment($file)
    68.     {
    69.         $result = $this->callMethod('photos.getWallUploadServer', array(
    70.             'gid' => $this->groupId
    71.         ));
    72.  
    73.         $ch = curl_init($result->response->upload_url);
    74.         curl_setopt($ch, CURLOPT_HEADER, false);
    75.         curl_setopt($ch, CURLOPT_POST, true);
    76.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    77.         curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    78.             'photo' => '@' . getcwd() . '/' . $file
    79.         ));
    80.  
    81.         if (($upload = curl_exec($ch)) === false) {
    82.             throw new Exception(curl_error($ch));
    83.         }
    84.  
    85.         curl_close($ch);
    86.         $upload = json_decode($upload);
    87.         $result = $this->callMethod('photos.saveWallPhoto', array(
    88.             'server' => $upload->server,
    89.             'photo' => $upload->photo,
    90.             'hash' => $upload->hash,
    91.             'gid' => $this->groupId,
    92.         ));
    93.  
    94.         return $result->response[0]->id;
    95.     }
    96.  
    97.     public function combineAttachments()
    98.     {
    99.         $result = '';
    100.         if (func_num_args() == 0) return '';
    101.         foreach (func_get_args() as $arg) {
    102.             $result .= strval($arg) . ',';
    103.         }
    104.         return substr($result, 0, strlen($result) - 1);
    105.     }
    106. }
    107.  
    108. $public = new VKPublic($group_id, $conf_app_id, $conf_secret);
    109.  
    110. $public->setAccessData($access_token, $secret);
    111.  
    112. $attachments = $public->combineAttachments(
    113.     $public->createPhotoAttachment('img.jpg')
    114. );
    115.  
    116. $public->wallPostAttachment($attachments, 'hello world');
    117. ?>
    А ошибки такие:

    Notice: Undefined property: stdClass::$response in /var/www/mydomen/data/www/mydomen.ru/index.php on line 74

    Notice: Trying to get property of non-object in /var/www/mydomen/data/www/mydomen.ru/index.php on line 74

    Fatal error: Uncaught exception 'Exception' with message '<url> malformed' in /var/www/mydomen/data/www/mydomen.ru/index.php:83 Stack trace: #0 /var/www/mydomen/data/www/mydomen.ru/index.php(114): VKPublic->createPhotoAttachment('img.jpg') #1 {main} thrown in /var/www/mydomen/data/www/mydomen.ru/index.php on line 83


    Свой домен я заменил на mydomen
    Картинка img.jpg существует.

    Пожалуйста помогите разрбраться с этими ошибками в VKPublic->createPhotoAttachment

    Работает ли curl проверял так:

    Код (PHP):
    1. <?php
    2. if (function_exists('curl_init')) {
    3.  echo 'Работает';
    4. } else {
    5.  echo 'Не работает';
    6. }
    7. ?>
    Пишет, что работает...

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  6. Sharax

    Sharax Новичок

    С нами с:
    12 сен 2015
    Сообщения:
    2
    Симпатии:
    0
    Вопрос снят. Причина была в отсутствии запроса прав на photos при получении прав
     
  7. bladderkun

    bladderkun Новичок

    С нами с:
    8 дек 2015
    Сообщения:
    3
    Симпатии:
    0
    Как реализовать сбор данных с VK?

    Скрипт который бы мог авторизовываться в вк, копировать записи со стен в группах и публиковать их в блоге на Wordpresse? И чтобы это происходило автоматически в определенное время или по мере появления записей в группах вк?
     
  8. machetero

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

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Re: Можно ли сделать такое на php?

    Изучайте VK API
     
  9. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Re: Можно ли сделать такое на php?

    Да, возможно, как уже было сказано:
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Re: Как реализовать сбор данных с VK?

    Тема переименована.
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и отправлена в соотв. место :D
     
  12. Sofia

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

    С нами с:
    25 сен 2008
    Сообщения:
    967
    Симпатии:
    2
    а есть у кого готовый рабочий скрипт авторизации и дальнгейшей записи в mysql?