API Vkontakte

123 4
Sveta Prokopeva
На сайте с 10.05.2006
Offline
99
#11

Dreammaker, не совсем понятно что вы имеете ввиду, не могли бы, пожалуйста, пояснить сказанное. Что значит ограничимся заходами с curl? И получилось ли у вас запостить на страницу группы с помощью апи?

ДП
На сайте с 23.11.2009
Offline
203
#12

Заход с curl - это эмуляция браузера пользователя. Т.е. на сервер будут отправляться запросы такие же, как если бы пользователь сам совершал какие-то действия - ходил по ссылкам, водил данные в формы.

Sveta Prokopeva
На сайте с 10.05.2006
Offline
99
#13

Дикий пионер, что такое curl мне известно. Мне не понятен контекст в котором употребили эту технологию.

Вам удалось что-нибудь запостить на стену?

Dreammaker
На сайте с 20.04.2006
Offline
570
#14

Sveta Prokopeva, сегодня в тикете отписался, что нет, не вышло.

Sveta Prokopeva:
Мне не понятен контекст в котором употребили эту технологию.

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

JW
На сайте с 30.01.2012
Offline
0
#15
Sveta Prokopeva:
JS авторизация это полная ерунда, не используйте её. Она очень ограничена и работа с ней не логична. Используйте авторизацию с использованием приложения. Просите у пользователя права какие вам нужны, и будет вам счастье.
Если по шагам, то:
1) Нужно закинуть пользователя на страничку
http://api.vkontakte.ru/oauth/authorize?client_id=VK_APP_ID&scope=offline&redirect_uri=http://localhost/login/vk&response_type=code
2) После этого получаем токен
https://api.vkontakte.ru/oauth/access_token?client_id=VK_APP_ID&client_secret=VK_SECRET_KEY&code=$code
3) Получаем общую информацию о пользователе
https://api.vkontakte.ru/method/getProfiles?uid=$user_id&fields=first_name,last_name,photo,bdate,sex&access_token=$token
4) Постим на стену, постим фотки всё что нужно, подробно описано в документации апи. Не забываем просить права на то что хотим делать в первом пункте (scope)

---------- Добавлено 27.01.2012 в 13:51 ----------

Так, прошу прощения, по-моему, я выдала слишком много не нужной информации по причине не внимательного чтения первого поста )
Возможно у вас не получается запостить на стену потому что вы не просите права доступа в любое время суток? Или не получается запостить даже когда пользователь онлайн?

Затык получается как раз в первом пункте, при попытке выполнить код вида


$data = array(
'client_id'=>'2770704',
'scope'=>'photos,offline,wall,groups,messages',
'redirect_uri'=>'blank.html',
'response_type'=>'code'
);
$url = "http://api.vkontakte.ru/oauth/authorize";
$ch = curl_init();
url_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_TIMEOUT, 40);
сurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$r = curl_exec($ch);
$response = json_decode($r);
curl_close($ch);

в ответе ничего нет, а если ставить 'redirect_uri' страничку своего сайта то вконтакт не позволяет пользоваться wall,groups,messages и отправить сообщение нельзя.

Если просто вызвать в браузере

http://api.vkontakte.ru/oauth/authorize?client_id=2770704&scope=photos,offline,wall,groups,messages&redirect_uri=blank.html&response_type=code

То получаем на пустой страничке код и используя его получаем токен и дальше уже постим на стену и в группу, а вот автоматически получить код не получается.

Dreammaker
На сайте с 20.04.2006
Offline
570
#16
Dreammaker:
имелось в виду, что эмулировать обычного пользователя.

судя по всему я проблему не до конца понял, но результата это не меняет :)

Sveta Prokopeva
На сайте с 10.05.2006
Offline
99
#17

JustWasp, необходимо указывать редирект урл полностью с http:// и так далее

---------- Добавлено 31.01.2012 в 04:26 ----------

Dreammaker, тут как бы без разницы какой вы запрос отправляете, пользователя вам таким способом не удастся эмулировать :)

Хотя мне на самом деле не понятно почему они закрыли возможность постить на стену, так глядишь ещё выполнят свои обещания по поводу убрать лайки и комменты.

Dreammaker
На сайте с 20.04.2006
Offline
570
#18

Sveta Prokopeva, в общем, сделали полуавтоматом. Получаем токен вручную один раз, а уже потом постим на стену группы автоматом по надобности.

Посмотрим, какие ещё подводные камни будут, если будут.

JW
На сайте с 30.01.2012
Offline
0
#19
Sveta Prokopeva:
JustWasp, необходимо указывать редирект урл полностью с http:// и так далее

Разницы нет: что полностью, что просто ссылка на blank.html. Все равно вконтакт делает редирект и получить курлом код для последующего получения токена не представляется возможным.
Sveta Prokopeva
На сайте с 10.05.2006
Offline
99
#20

JustWasp, вы немножко запутались в механизме получения токена. Аксес-токен получается после того, как пользователь попал на страницу http://localhost/black.html?code=1sdfad3124, после того как разрешил доступ к запрашиваемым данным. Смотрите пункт два в моём первом посте.

И указывайте редирект урл полносью, раньше это имело значение. Сейчас точно не скажу.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий