Показать сообщение отдельно
  #5  
Старый 23.08.2014, 06:23
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

не совсем понятно, что значит репост страницы? репостить можжно только записи, сами страницы пользователей/пабликов репостить нельзя.
вот пример авторизации,получения месаги и репоста, дальше головой сам поработай) все описания методов тут: https://vk.com/dev/wall.repost
Для начала в компоненте idHttp1 установи контент-тип на "application/x-www-form-urlencoded"
авторизация:
Код:
var //глобальные
API_GET_TOKEN:String='https://oauth.vk.com/token?username=%s&password=%s&client_id=3140623&client_secret=VeWdmVclDCtn6ihuP1nt&grant_type=password'; // ссылка на авторизацию, вернёт токен. client_secret - от айфона.
API_METHOD:String='https://api.vk.com/method/%s?v=5.24&access_token=%s&%s'; //адрес запросов к вк апи, где 'проценты' туда подставим токен, имя апи-метода и параметры.
global_token:String;

var
url, response:String;

begin //авторизация, получаем токен.
url :=  Format(API_GET_TOKEN, [login, pass]);

try
  response:= IdHTTP1.Get(url);
  //тут ты парсишь переменную response и считываешь из нее параметр "access_token". 
  global_token:= ТУТ ПАРСИШЬ response.
Except End;

получить сообщения:


Код:
var
api_url, method, params, response:String;
link:String;
begin
method:='messages.getDialogs';
params:='count=200&unread=1'; //параметры. тут указываем считать 200 сообщений, unread=1 - только новые.
api_url:=  Format(API_METHOD, [method, global_token, params]); 

response:= idHttp1.GET(api_url);
//тут парсишь ответ и читаешь твои сообщения. параметр count в ответе вернет кол-во непрочитанных.
//считываешь сообщения и ищещь если есть ссылка то заносишь ее в переменную link.
//если ссылка на запись стены то из ссылки вида "https://vk.com/id1?w=wall1_45630" (где 1- ид Дурова, а 45630-ид записи) вырезаешь часть "wall1_45630" и репостишь её так:
link:='wall1_45630'; 
method:='wall.repost'; 
params:= 'object='+link';

api_url:=  Format(API_METHOD, [method, global_token, params]); 
response:= idHttp1.GET(api_url); //готово. 

PS: для работы с https не забудь библиотеку ssl закинуть в папку с твоей прогой,и подключить TIdSSLIOHandlerSocketOpenSSL
Ответить с цитированием