예제 #1
0
 /**
  * @return array|null
  */
 public function getGroupInfo()
 {
     $this->response = $this->client->api('groups.getById', ['group_ids' => -$this->ownerId, 'fields' => 'city,country,place,description,wiki_page,members_count,counters,start_date,
                     finish_date,can_post,can_see_all_posts,activity,status,contacts,links,
                     fixed_post,verified,site,ban_info']);
     return $this->response();
 }
예제 #2
0
 public function run()
 {
     DB::table('users')->delete();
     $VK = new VK(env('VK_APP_ID'), env('VK_KEY_SECRET'));
     $vkCities = $VK->api('database.getCities', ['need_all' => 1, 'count' => 1000, 'lang' => 'ru']);
     while (count($vkCities) == 1000) {
         foreach ($vkCities['response'] as $country) {
             City::create(['id' => $country['id'], 'title' => $country['title']]);
         }
         $vkCities = $VK->api('database.getCities', ['need_all' => 1, 'count' => 1000, 'lang' => 'ru']);
     }
     foreach ($vkCities['response'] as $country) {
         City::create(['id' => $country['id'], 'title' => $country['title']]);
     }
 }
예제 #3
0
 public function index()
 {
     $appId = \Config::get('vk_app.appId');
     $appSecret = \Config::get('vk_app.appSecret');
     $permissions = \Config::get('vk_app.permissions');
     $accessToken = \Config::get('vk_app.access_token');
     $vk = new VK($appId, $appSecret, $accessToken);
     $dialogs = $vk->api('messages.getDialogs');
     $dialogs = $dialogs['response'];
     $dialogs_count = array_shift($dialogs);
     $all_user_dialogs_ids = array();
     foreach ($dialogs as $key => $value) {
         if (isset($value['chat_id'])) {
             continue;
         }
         $all_user_dialogs_ids[] = $value['uid'];
     }
     $messagesGetHistory = function ($user_id, $offset, $count) use($vk) {
         $messages_part = $vk->api('messages.getHistory', array('user_id' => $user_id, 'offset' => $offset, 'count' => $count));
         $response = $messages_part['response'];
         $count = array_shift($response);
         return ['count' => $count, 'messages' => $response];
     };
     $messagesByUsers = array_fill_keys($all_users_dialogs, array());
     $step = 200;
     foreach ($all_users_dialogs as $user_id) {
         $offset = 0;
         $count = $step;
         $hasMessages = true;
         while ($hasMessages) {
             $response = $messagesGetHistory($user_id, $offset, $count);
             $messagesPart = $response['messages'];
             $tempCount = $response['count'];
             $hasMessages = $tempCount >= $offset + $step;
             $offset += $step;
             $messagesByUsers[$user_id] = array_merge($messagesByUsers[$user_id], $messagesPart);
             sleep(1);
         }
         echo "<pre>";
         var_export($messagesByUsers);
         echo "</pre>";
         die;
     }
 }
예제 #4
0
 public function login(UserRepository $userRepo, Guard $auth)
 {
     $vk = new vk(env('VK_CLIENT_ID'), env('VK_CLIENT_SECRET'));
     try {
         $access_token = $vk->getAccessToken($_REQUEST['code'], env('VK_REDIRECT'));
         $data = $vk->api('users.get', ['uids' => $access_token['user_id'], 'fields' => 'first_name,last_name,photo_big,status,screen_name']);
         $user = $userRepo->findOrCreate($data['response'][0]);
     } catch (VKException $e) {
         Flash::error(trans('exceptions.auth.vk_exception'));
         return redirect($this->default_redirect);
     }
     $this->auth->login($user, true);
     if (!Session::has('user')) {
         Session::set('user', $user);
     }
     if (url()->previous() && strpos(url()->previous(), url('/')) !== false && url()->previous() != route('auth')) {
         return redirect(url()->previous());
     }
     return redirect($this->default_redirect);
 }
예제 #5
0
 /**
  * @param $aid
  * @param $oid
  * @param null $captchaSid
  * @param null $captchaKey
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function importSong($aid, $oid, $captchaSid = null, $captchaKey = null)
 {
     if (Request::ajax()) {
         if (!$this->checkStepAuth('step_four')) {
             return Response::json(array('response' => array('status' => 'error', 'message' => 'Token Auth failed')));
         }
         if ((int) $aid === 0 || (int) $oid === 0) {
             return Response::json(array('response' => array('status' => 'error', 'message' => 'Audio or Author id is wrong')));
         }
         $songsToImport = Session::get('vk.songsToImport');
         if (!is_array($songsToImport) || !count($songsToImport)) {
             return Response::json(array('response' => array('status' => 'error', 'message' => 'Song session was not set. Please follow all steps again')));
         }
         if ((int) Session::get('vk.songsToImport.' . $aid . 'status') === 1) {
             return Response::json(array('response' => array('status' => 'success', 'message' => 'Song already imported')));
         }
         $config = array('v' => '2.0', 'aid' => $aid, 'oid' => $oid);
         if ($captchaKey && $captchaSid) {
             $config['captcha_sid'] = $captchaSid;
             $config['captcha_key'] = $captchaKey;
         }
         $res = $this->vk->api('audio.add', $config);
         if (array_key_exists('response', $res)) {
             Session::put('vk.songsToImport.' . $aid . '.status', 1);
             return Response::json(array('response' => array('status' => 'success', 'message' => 'Song imported')));
         }
         if (array_key_exists('error', $res)) {
             if ($res['error']['error_code'] == 14) {
                 return Response::json(array('response' => array('status' => 'error', 'message' => $res['error']['error_msg'], 'captcha_sid' => $res['error']['captcha_sid'], 'captcha_img' => $res['error']['captcha_img'], 'method' => 'audio-add', 'aid' => $aid, 'oid' => $oid)));
             } else {
                 return Response::json(array('response' => array('status' => 'error', 'message' => $res['error']['error_msg'])));
             }
         }
         return Response::json(array('response' => array('status' => 'error', 'message' => 'vk response code unsupported')));
     }
     return redirect('/');
 }