Autor Beitrag
Bennle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WinXP
Delphi 2007 Pro, C# (VS 2005)
BeitragVerfasst: Do 20.12.07 22:28 
Hallo,
Ich habe soeben mir die WSDL für Ebay in meinen Programm geladen. Soweit auch so gut! (WSDL unter developer.ebay.com/w...latest/ebaySvc.wsdl)

Für den ersten einstieg halte ich mich an den C# Code
ausblenden volle Höhe 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WinXP
Delphi 2007 Pro, C# (VS 2005)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1338
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: 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%.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Bennle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WinXP
Delphi 2007 Pro, C# (VS 2005)
BeitragVerfasst: 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