🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52336

Re: Allegro WebAPI - czy komus się udało?

#52336
From: Giz
Date: Wed, 11 Jan 2012 08:12
58 lines
2764 bytes
> Czy komuś udało się to przeskoczyć?


Jako że nikomu się nie udało stworzyć komunikacji SOAP w perlu z 
AllegroWebApi lub stworzył ale siedzi cicho.
Wnioskuje to z tego że na grupach są tylko same pytania bez konkretnych 
odpowiedzi, także na forum WebApi na Allegro.
Wklejam tu swoje rozwiązanie.
Stety lub niestety musiałem skorzystać z kodu php który łączy się z 
AllegroWebApi.
Na szczęście w php musiałem zrobić tylko mały skrypcik a główna część jest 
nadal w perlu.
W skrócie wygląda to tak:

W perlu zrobiona jest cała obsługa  która  gdy potrzebuje wywołąć jakąś 
funckcję z AllegroWebApi to tworzę xml
który wysyłany jest do skryptu w php.
Skrypt w php ma za zadanie zamienić xml na Array i wysłać do Allegro.
Odpowiedź ponownie trafia do skryptu w perlu.

Wywołanie skryptu z poniomu perl wygląda tak:
my $res= `./SOAP.php \"$xml\"`;     # w $res mamy odpowiedź z allegro


natomiast sam skrypt SOAP.php to:

<?php
  require_once 'nusoap.php';
  require_once "class.xmltoarray.php";

  // skrypt oczekuje tylko jednego parametru w ktorym bedzie xml
  if(empty($argv[1])) {exit;}
  $xml=$argv[1];

  // zaczynamy przerabiac xml na array
  // funkcje xmlToArray znalazlem w necie i lekko
  // przerobiłem na własne potrzeby
  // Takich funkcji jest w necie sporo, wystarczy poszukac i dostosowac
  $xmlObj    = new XmlToArray($xml);
  $array = $xmlObj->createArray();


  $metoda=$array["xml"]["metoda"];  // moj xml zawiera tez info o 
wywolywanej metodzie
  $msg=$array["xml"]["dane"];       // tu wydzielam same dane z xml

     $client = new SoapClient('http://webapi.allegro.pl/uploader.php?wsdl', 
true);
     $client->soap_defencoding = 'UTF-8';
     $client->decode_utf8 = false;
     $response = $client->call("$metoda", $msg);

     print_r($response);
?>


Pozdr
G
Technical Details
Message-ID: <jejg92$afm$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
References: <jdumrr$pq3$1@news.icm.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: "Giz" <giz@nospam.pl>
Newsgroups: pl.comp.lang.perl
Subject: Re: Allegro WebAPI - czy komus się udało?
Date: Wed, 11 Jan 2012 09:12:21 +0100
Organization: ICM, Uniwersytet Warszawski
Lines: 59
Message-ID: <jejg92$afm$1@news.icm.edu.pl>
References: <jdumrr$pq3$1@news.icm.edu.pl>
NNTP-Posting-Host: 195-80-229-22.pljtelecom.pl
Mime-Version: 1.0
X-Trace: news.icm.edu.pl 1326269538 10742 195.80.229.22 (11 Jan 2012 08:12:18 GMT)
X-Complaints-To: usenet@news.icm.edu.pl
NNTP-Posting-Date: Wed, 11 Jan 2012 08:12:18 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit