Jump to content

Rick

Community Member
  • Posts

    7
  • Joined

  • Last visited

Everything posted by Rick

  1. I've used it successfully today, but am having problems logging in via API with a new (demo) account.
  2. Well, as always with these things, if you beat your head against the wall for long enough you can probably fix it 🤣. I realised that the sample code uses the URI /history/transactions/{transactionType}/{lastPeriod} to access the V1 interface. V2 uses a slightly different URI ... just /history/transactions, with variable parameters passed using the '?' construct. I picked this up from the API Companion app, which helpfully shows the generated GET URIs. Then I had to invent a new V2Transaction type ( since the demo code only supports V1) to persuade JSON to deserialise to result for me. Problem (eventually) solved. I'm still grateful to Andy for responding, and giving me confidence that there are those out there who care. If anyone wants more details on this particular problem, let me know, and I'll try to post some revised code (once I've cleaned it up, of course!).
  3. Thanks for responding Andy. Stepping through the code, the relevant section of the IG sample API code can be precised as var client = new HttpClient(); ... if (conversationContext != null) { if (conversationContext.apiKey != null) { client.DefaultRequestHeaders.Add("X-IG-API-KEY", conversationContext.apiKey); } if (conversationContext.cst != null) { client.DefaultRequestHeaders.Add("CST", conversationContext.cst); } if (conversationContext.xSecurityToken != null) { client.DefaultRequestHeaders.Add("X-SECURITY-TOKEN", conversationContext.xSecurityToken); } client.DefaultRequestHeaders.Add("VERSION", version); } //This only works for version 1 !!! //client.DefaultRequestHeaders.TryAddWithoutValidation("version", version ?? "1"); ... var response = new HttpResponseMessage(); string content = null; switch (method.Method) { case "POST": ... case "GET": var myGetTask = client.GetAsync(_baseUrl + uri); response = myGetTask.Result; break; This returns transaction data quite happily using Version 1 of the interface (but without the additional V2 data), but errors if I try to run it with Version=2 ... Any ideas? Note the comment in the IG code!!! Or could you send me a code sample in VB from your spreadsheet, to see if I can translate into C# (shouldn't be too difficult) ... Rick
  4. I'm trying to access /history/transactions v2 via API, in order to retrieve accurate entry and exit times (not supported in v1). I'm writing in C#, based on the API samples, but they only seem to support v1, and not the v2 documented in the Reference guide. Anyone know how to amend the v1 code to make it support v2 ... the call in sample code is public async Task<IgResponse<TransactionHistoryResponse>> lastTransactionPeriod(string transactionType, string lastPeriod) { return await _igRestService.RestfulService<TransactionHistoryResponse>("/gateway/deal/history/transactions/" + transactionType + "/" + lastPeriod, HttpMethod.Get, "1", _conversationContext); } .. and yes, I did try just changing the "1" to a "2" ... I get an Error 500. Any help most gratefully received! This has been driving me crazy!
×
×
  • Create New...
us