Данный скрипт поможет Вам получить API доступ к standalone методам с сайта. Функция возвращает токен, который Вы можете использовать при вызовах API. Способ довольно примитивный, но может кому-нибудь пригодится.
Цитата
<?php
function getStandaloneToken($login, $pass, $client_id) {
$cookie = 'vkapi.cookie';
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($curl, CURLOPT_URL, 'https://oauth.vk.com/authorize?client_id='.$client_id.'&display=mobile&redirect_uri=https://oauth.vk.com/blank.html&scope=messages&response_type=token&v=5.37');
$result = curl_exec($curl);
preg_match_all('/<input type="hidden" name="(.*)" value="(.*)".?.?>/', $result, $matches);
for($i = 0; $i < 4; $i++) {
$params[$matches[1][$i]] = $matches[2][$i];
}
$params['email'] = $login;
$params['pass'] = $pass;
curl_setopt($curl, CURLOPT_URL, 'https://login.vk.com/?act=login&soft=1&utf8=1');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
$result = curl_exec($curl);
$token_file = 'vkapi.token';
do {
$location = preg_match('/Location: (.*)?\r\n/', $result, $matches);
$url = $matches[1];
if($url == 'https://m.vk.com/') {
break;
}
if(preg_match('/access_token=(.*)&expires_in/', $result, $matches)) {
file_put_contents($token_file, $matches[1]);
break;
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPGET, 1);
$result = curl_exec($curl);
}
while($location);
curl_close($curl);
return file_get_contents($token_file);
}
echo getStandaloneToken('ЛОГИН', 'ПАРОЛЬ', 'ИД_ПРИЛОЖЕНИЯ');
?>