Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Получение Access_token VK средствами PHP


Автор: snr93 5.3.2017, 11:40
Была на форуме раньше такая тема: http://forum.vingrad.ru/forum/topic-353950.html

Но она не особо актуальна, я пробовал ее переделать на новый лад, но есть небольшая загвоздка

То, что у меня на данный момент.

Код

<?php
define('APP_ID', '******');
define('SECRET_KEY', '******');
define('REDIRECT_URI', 'https://oauth.vk.com/blank.html');


$url ="http://oauth.vk.com/authorize?client_id=".APP_ID."&scope=notify,friends,photos,audio,video,pages,status,notes,messages,wall,ads,offline,docs,groups,notifications,stats,email,market&redirect_uri=".REDIRECT_URI."&display=page";

$data ='<div id="vk_api_transport"></div>
                <script type="text/javascript">
                  window.vkAsyncInit = function() {    VK.init({apiId: '.APP_ID.'}); };
                  setTimeout(function(){ var el = document.createElement("script");
                    el.type = "text/javascript"; el.src = "http://vk.com/js/api/openapi.js";
                    el.async = true; document.getElementById("vk_api_transport").appendChild(el);
                  }, 0);
                </script>';
                
                
                
                
      echo '<a href="'.$url.'">'.$url.'</a>';         
                
      echo $data;     
     
     
            $code = $_GET['code'];
                
           $res = file_get_contents('https://api.vk.com/oauth/token?client_id='.APP_ID.'&code='.$code.'&client_secret='.SECRET_KEY.'&redirect_uri='.REDIRECT_URI); 
                    
            $token = json_decode($res);
            
            
            $fealds = 'uid,first_name,last_name,nickname,screen_name,sex,bdate,city,country,timezone,photo,photo_medium,photo_big,has_mobile,rate,contacts,education,online,counters';
            $resp = file_get_contents('https://api.vk.com/method/getProfiles?uids='.$token->user_id.'&access_token='.$token->access_token."&fields=".$fealds); 
            $data = json_decode($resp);
            
            $fealsd  =  array(
                'birth_time'=> $data->response[0]->bdate,
                'surname'=> $data->response[0]->last_name,
                'name'=> $data->response[0]->first_name,  
                'uid'=> $data->response[0]->uid,
                'mobile'=> $data->response[0]->mobile_phone,
                'phone'=> $data->response[0]->home_phone,
                'sex'=>   $data->response[0]->sex,
                'pwd'=>   '',
                'login'=> '',
                'avatar'=> $data->response[0]->photo 
            );
            
           $ms = 'Тест';
           $ms = file_get_contents('https://api.vk.com/method/wall.post?uids='.$token->user_id.'&access_token='.$token->access_token."&message=".$ms); 
            
            echo '<pre>';
                print_r( $fealsd);
            echo '</pre>';
            echo $ms;



Если в $code руками написать одноразовый код, то все работает. Но как мне сделать так, чтобы при открытии этого скрипта получался $code и все работало? А то после 1 ссылки срабатывает перенаправление, в URL в браузере появляется код, но дальше естественно ничего не происходит, потому что была переадресация на https://oauth.vk.com/blank.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)