уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

IncreaseПока Google чистит свои API решил немного доработать модуль для работы с Яндекс.Метрикой. Об этом модуле я писал пока всего один раз и за прошедшее время этот API вышел “из подполья”, т.е. теперь ссылка на API Метрики светится как в списке всех API Яндекса, так и на страничке Метрики сверху.

Теперь в модуле есть методы для доступа ко всем ресурсам сервиса, для которых используется метод GET, а также появился базовый метод для выполнения POST-запросов к Метрике.

Итак, если вы впервые читаете в блоге про API Яндекс.Метрики, то советую Вам сначала ознакомиться с первым сообщением в котором рассматривается первоначальный модуль. Ну, а для тех, кто уже в курсе, что и как работает в этом модуле – список добавленных методов:

{Возвращает информацию о целях счетчика.}
  function GetGoals(id: integer):string;
{возвращает информацию по цели}
  function GetGoalInfo(id,goal_id:integer):string;
{Возвращает информацию о фильтрах счетчика.}
  function GetFilters(id: integer):string;
{Возвращает информацию об указанном фильтре счетчика.}
  function GetFilterInfo(id, filter_id:integer):string;
{Возвращает информацию об операциях счетчика.}
  function GetOperations(id: integer):string;
{Возвращает информацию об указанной операции счетчика.}
  function GetOperationInfo(id, operation_id:integer):string;
{Возвращает информацию о разрешениях на управление счетчиком и просмотр статистики.}
  function GetGrants(id: integer):string;
{Возвращает информацию об указанном разрешении на управление счетчиком и просмотр статистики.}
  function GetGrantInfo(id:integer; user_login:string):string;
{Возвращает список представителей, которым предоставлен полный доступ к аккаунту текущего пользователя}
  function GetDelegates():string;
{Возвращает список аккаунтов, представителем которых является текущий пользователь.}
  function GetAccounts():string;

Все методы возвращают строку. Если надо предоставить полученный объект в формате JSON или XML в виде какого-либо объекта Delphi, то парсите эту строку чем угодно: Superobject для JSON, NativeXML или MSXML для работы с XML и т.д.

Также у класса TYandexMetrica появился новый приватный метод для отправки POST запроса:

function TYandexMetrica.POSTCommand(Method: string;
  Params: TStringList): string;
var
  URL, ParamsStr, outFormat: string;
  Data: TStringStream;
begin
  if not FAuthorizer.Authorized then
    Exit;
  outFormat :=GetEnumName(TypeInfo(TOutputFormat), ord(OutputFormat));
  outFormat := Copy(outFormat, 3, Length(outFormat) - 2);
  URL := Format(cApiURL, [Method, LowerCase(outFormat),FAuthorizer.OAuthToken]);
  Data := TStringStream.Create;
  try
    with THTTPSend.Create do
    begin
      Params.SaveToStream(Document);
      MimeType:=GetMimeType;
      Headers.Add('Accept : '+GetMimeType);
      if HTTPMethod('POST', URL) then
      begin
        Data.LoadFromStream(Document);
        Result := Data.DataString;
      end
      else
        raise Exception.Create('Ошибка отправки запроса');
    end;
  finally
    Data.Free;
  end;
end;

Этот метод в качестве входных параметров принимает название ресурса, к которому необходимо получить доступ (Method) и список параметров, которые будут помещены в тело запроса.

Например, чтобы создать новый счётчик в своем аккаунте можно воспользоваться этим методом так (после успешной авторизации, естественно):

var Params: TStringList;
begin
  Params:=TStringList.Create;
  Params.Add('{"counter":{"site":"www.example.ru"}}');
  ShowMessage(POSTCommand('counters',Params));
end;

После этого в вашем аккаунте в Метрике появится новый счётчик для сайта www.example.ru, а все параметры нового счётчика будут показаны в сообщении.

Скачать исходник: Исходники —> API онлайн-сервисов —> Яндекс API

Книжная полка

Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
купить книгу delphi на ЛитРес
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
купить книгу delphi на ЛитРес
0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
1 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Tetronix
Tetronix
13/09/2012 00:20

К сожалению на данные момент уже не работает(( как это исправить?