Перейти к публикации
a-droid

PHP vk api php

Рекомендованные сообщения

a-droid

Есть класс для работы с VK API

кто работал с vk api через php подскажите а то уже второй день сижу

Получаю данные вот таким методом

$VK = new vkapi($api_id, $secret_key);
$resp = $VK->api('users.get', array('uids'=>$_GET['viewer_id'],'fields'=>'photo_100'));

в итоге получаю

SimpleXMLElement Object ( [error_code] => 11 [error_msg] => In test mode application should be disabled or user should be authorized [request_params] => SimpleXMLElement Object ( [@attributes] => Array ( [list] => true ) [param] => Array ( [0] => SimpleXMLElement Object ( [key] => api_id [value] => 3786125 ) [1] => SimpleXMLElement Object ( [key] => fields [value] => photo_100 ) [2] => SimpleXMLElement Object ( [key] => method [value] => users.get ) [3] => SimpleXMLElement Object ( [key] => test_mode [value] => 1 ) [4] => SimpleXMLElement Object ( [key] => uids [value] => 14471055 ) [5] => SimpleXMLElement Object ( [key] => v [value] => 3.0 ) [6] => SimpleXMLElement Object ( [key] => sig [value] => 0fac0faa529c8bda0dfa1d90f4a90cdc ) ) ) )

ТП Вконтакте отписала

Метод users.get — клиентский, его нельзя с сервера вызывать.

как еще можно получить данные пользователя через пхп, а именно
Имя фамилия, фотка, пол.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
iCast

Легко:

 

$viewer_id = $_GET['viewer_id'];
$get_id_user = file_get_contents("https://api.vk.com/method/users.get?uids=$viewer_id&fields=photo_100,sex");
$response_is_user = json_decode($get_id_user);
$first_name = $response_is_user->response[0]->first_name;
$last_name = $response_is_user->response[0]->last_name;
$sex = $response_is_user->response[0]->sex;
$photo = $response_is_user->response[0]->photo_100;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
a-droid

@iCast, не пойдет нужно использовать класс

vkapi.class.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
iCast

@a-droid, это открытый метод, не требующий access_token, его может использовать любой человек даже если у него нет приложения. А почему нужно использовать класс? Может я чего-то не знаю, но мой вариант намного проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
a-droid

@iCast, скорость работы мала

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DotNet

@iCast, скорость работы мала

Одна и та же скорость работы. И там и там дергается URL

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
James D'Greeze

это открытый метод, не требующий access_token, его может использовать любой человек даже если у него нет приложения. А почему нужно использовать класс?

Вот именно открытый метод. Но он очень ограничен.

Мне самому интересно как получить акссес токен изпод пхп. Всегда через javascript получал, ибо токен передает #хешем в резалт урл и только после того как юзер даст разрешение приложению. поэтому резалт урл с токеном пыхой не забрать.

Знаю только один вариант: Создать приложение в ВК. одобрить его администрацией и тогда дадут безлимитный токен который можно юзать и с сервера и где угодно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
iCast

Ясен пень что через пхп токен не забрать. Я пробовал получать url с помощью js (когда после разрешения пользователя редиректило на сайт но что не нравилось метод wall ограничен) ,резать урл и как то передавать в пхп код. Но это был акций говно-код. Не могли бы исходнички кинуть как с помощью js у вас получилось передавать в пхп? В про вечный токен который можно использовать со стороны сервера - это не каждому приложеню дают. У меня например сервис раскруткм / обмена лайками/подписчиками и т д. Такому приложению не дадут такой токен:) скорее меня забанят и приложение тоже. Но на моём сайте пользователи сами вставляют токен в форму на свой страх и риск

Изменено пользователем iCast

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
James D'Greeze

Там все просто. создаешь функцию:

function getToken() {
    var vkurl =  'http://oauth.vk.com/authorize?client_id={IDAPPLICATION}'+
    '&redirect_uri=http://site.ru/result_url.html'+
    '&scope=photos,video,audio&display=popup&response_type=token';
    var params = "width=800,height=600";
    window.open(vkurl, "AuthVK", params);
}

Она тебе открывает попап окно с авторизацией в вк. одобряешь аппликатион и тебе кидает на result_url.html/php (не важно)

в резалт урл пишешь

<!DOCTYPE HTML>
<html>
<head>
<title>RESULT URL</title>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript">
var accessToken = location.hash.split("#").join("");
$.ajax({
	type: "POST",
	url: "/ajax.php",
	data: "accessToken="+accessToken,
	success: function(msg){
	   alert("Access Token отослан на сервак");
           window.close();
	}
});
</script>
</head><body></body>
</html>

вот и все а дальше с этим токеном в апи. 

Ток я все через пыху делал и все токены юзеров в базу заносил и перед получением нового делал проверку на старый. если старый истек то его удаляем и получаем новый если нет работаем с ним. чтобы при каждом действии не всплывало окно за получением нового токена. Всплывает тока раз в сутки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
a-droid

решил проблему)

всем спасибо за ответы)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...