Entwickler-Ecke

Internet / Netzwerk - ebayAPI WSDL Einstieg


Bennle - Do 20.12.07 22:28
Titel: ebayAPI WSDL Einstieg
Hallo,
Ich habe soeben mir die WSDL für Ebay in meinen Programm geladen. Soweit auch so gut! (WSDL unter http://developer.ebay.com/webservices/latest/ebaySvc.wsdl)

Für den ersten einstieg halte ich mich an den C# Code

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
using System;
using TesteBaySoap405.com.ebay;     // use your project name here
namespace TesteBaySoap405           // use your project name here
{
  class GeteBayOfficialTime
  {
    [STAThread]
    static void Main(string[] args)
    {
       string endpoint = "https://api.sandbox.ebay.com/wsapi"
       string callName = "GeteBayOfficialTime";
       string siteId = "0";
       string appId = "yourAppId";     // use your app ID
       string devId = "yourDevId";     // use your dev ID
       string certId = "yourCertId";   // use your cert ID
       string version = "405";
       // Build the request URL
       string requestURL = endpoint
       + "?callname=" + callName
       + "&siteid=" + siteId
       + "&appid=" + appId
       + "&version=" + version
       + "&routing=default";
       // Create the service
       eBayAPIInterfaceService service = new eBayAPIInterfaceService();
       // Assign the request URL to the service locator.
       service.Url = requestURL;
      // Set credentials
      service.RequesterCredentials = new CustomSecurityHeaderType();
      service.RequesterCredentials.eBayAuthToken = "yourToken";    // use your token
      service.RequesterCredentials.Credentials = new UserIdPasswordType();
      service.RequesterCredentials.Credentials.AppId = appId;
      service.RequesterCredentials.Credentials.DevId = devId;
      service.RequesterCredentials.Credentials.AuthCert = certId;
      // Make the call to GeteBayOfficialTime
      GeteBayOfficialTimeRequestType request = new GeteBayOfficialTimeRequestType();
      request.Version = "405";
      GeteBayOfficialTimeResponseType response = service.GeteBayOfficialTime(request);
      Console.WriteLine("The time at eBay headquarters in San Jose, California, USA, is:");
      Console.WriteLine(response.Timestamp);
    }
  }
}



Funktioniert auch soweit, bis auf das Anlegen der Klasse eBayAPIInterfaceService! Ich finde keine eBayAPIInterfaceService Klasse!! Welche muss ich denn da nehmen? Wäre super wenn mir einer die Klasse nennt oder was ich tun muss, damit ich dieses Beispiel ausführen kann.

Ich bitte zu beachten, dass ich leider nicht das .Net SDK verwenden kann, da ich eine Win32 Anwendung habe.

So weit habe ich es schon:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
procedure TForm1.Button1Click(Sender: TObject);
var
  SiteID, appID, devID, certID, version, requestURL, user: String;
  service: RequesterCredentials;
  request: GeteBayOfficialTimeRequestType;
  Response: GeteBayOfficialTimeResponseType;
  DateTime: String;
begin
       siteId := '77'//Deutsch!
       appId := '';     // use your app ID
       devId := '';     // use your dev ID
       certId := '';   // use your cert ID
       user := '' ; //TokenID
       version := '405';

       service := ebaySvc.RequesterCredentials.Create;
       service.eBayAuthToken := user;
       service.Credentials := ebaySvc.UserIdPasswordType.Create;
       service.Credentials.AppId := appID;
       service.Credentials.DevId := devID;
       service.Credentials.AuthCert := certID;

       //Nun wird der Aufruf gestartet (OffizelleZeit!)
       request := ebaySvc.GeteBayOfficialTimeRequestType.Create;
       request.Version := version;

       response := ebaySvc.eBayAPIInterface('').GeteBayOfficialTime(request); //Hier hängt es noch
       datetime := response.Timestamp.NativeToXS; //DateTimeToStr(response.Timestamp.AsDateTime);
       ShowMessage('Die offizelle Zeit ist:'+ datetime);
end;


Wäre super wenn eine Lösung zustande kommen würde!


Bennle - Fr 21.12.07 00:21

Also alles was ich seit heute mittag gemacht habe bringt mich nicht wirklich weiter.
Zwischenzeitlich habe ich mal den C# Code versucht und geprüft.
Natürlich funktioniert dieser auf anhieb!

Herausgefunden habe ich das in Delphi das Feld RequesterCredentials nicht als Teil von eBayuAPIInterface erstellt wird.

Kann ich das per Hand irgendwie umbiegen? Oder ist der Aufwand zu groß und der Sache nicht wert.

Welche Möglichkeit besteht mir noch außer auf des .Net SDK?


Sinspin - Fr 21.12.07 00:21

Ich habe mich mit der WSDL ein paar Page Tage abgeraggert und sie nicht zum laufen bekommen (in Delphi). Ich verwende bisher für alle Ebay Zugriffe die XML HTTPS Schnittstelle. Die funktioniert FAST 100%.


Bennle - Sa 22.12.07 20:23

user profile iconSinspin hat folgendes geschrieben:
Ich habe mich mit der WSDL ein paar Page Tage abgeraggert und sie nicht zum laufen bekommen (in Delphi). Ich verwende bisher für alle Ebay Zugriffe die XML HTTPS Schnittstelle. Die funktioniert FAST 100%.


Naja aber diese Variante finde ich unschön.
Und da VS 2005 Express sogar kostenlos kommerziell einsetzbar ist werde ich meine Anwendung einfach in C# schreiben. Delphi ist mittlerweile sowieso irgendwie veraltet. (In Bezug auf .Net)

Gruß
Benny