[fpc-pascal] ERESTAPI: TBuckets: unsupported array element type : <looks like empty string>
Michael Van Canneyt
michael at freepascal.org
Sat Sep 24 18:48:48 CEST 2016
What version of FPC are you using ? If it is trunk, there is currently a bug
which can cause this kind of behaviour, due to the changed RTTI.
Michael.
On Sat, 24 Sep 2016, leledumbo wrote:
> I'm testing google cloud storage API with the following simple console
> program, just to list the buckets:
>
> {$mode objfpc}{$H+}
>
> uses
> googleservice,
> googleclient,
> googlestorage,
> openssl,
> jsonparser,
> fpjson,
> fpoauth2,
> fpwebclient,
> fphttpwebclient;
>
> type
> TAuthHelper = class
> procedure DoUserConsent(const AURL: String; out AAuthCode: String);
> end;
>
> procedure TAuthHelper.DoUserConsent(const AURL: String; out AAuthCode:
> String);
> begin
> WriteLn('Open the following URL in browser:');
> WriteLn(AURL);
> Write('Writeback the resulting code here: ');
> ReadLn(AAuthCode);
> end;
>
> var
> AuthHelper: TAuthHelper;
> GClient: TGoogleClient;
> GStorageAPI: TStorageAPI;
> BucketsResource: TBucketsResource;
> BucketsListOptions: TBucketsListOptions;
> Buckets: TBuckets;
> i: Integer;
> begin
> try
> // Register Tasks resources.
> TStorageAPI.RegisterAPIResources;
>
> // Set up google client.
> GClient := TGoogleClient.Create(nil);
> GClient.WebClient := TFPHTTPWebClient.Create(nil);
> GClient.WebClient.RequestSigner := GClient.AuthHandler;
> GClient.WebClient.LogFile := 'requests.log';
> GClient.AuthHandler.WebClient := GClient.WebClient;
> GClient.AuthHandler.Config.AccessType := atOffLine;
>
> // We want to enter a code.
> AuthHelper := TAuthHelper.Create;
> GClient.OnUserConsent := @AuthHelper.DoUserConsent;
>
> // Create a Tasks API and connect it to the client.
> GStorageAPI := TStorageAPI.Create(nil);
> GStorageAPI.GoogleClient := GClient;
>
> // Registered application needs tasks scope
> GClient.AuthHandler.Config.ClientID := '<my client id>';
> GClient.AuthHandler.Config.ClientSecret := '<my client secret>';
> GClient.AuthHandler.Config.AuthScope :=
> 'https://www.googleapis.com/auth/devstorage.read_only';
> // We are offline.
> GClient.AuthHandler.Config.RedirectUri := 'urn:ietf:wg:oauth:2.0:oob';
> // Session data
> GClient.AuthHandler.Session.RefreshToken := '';
> GClient.AuthHandler.Session.AccessToken := '';
> GClient.AuthHandler.Session.AuthTokenType := '';
> GClient.AuthHandler.Session.AuthExpires := 0;
> GClient.AuthHandler.Session.AuthExpiryPeriod := 0;
>
> BucketsResource := GStorageAPI.CreateBucketsResource;
> BucketsListOptions.Project := '<my project number>';
> Buckets := BucketsResource.List(BucketsListOptions);
> if Assigned(Buckets) then
> for i := 0 to Length(Buckets.Items) - 1 do
> WriteLn(Buckets.Items[i].name + ': ' + Buckets.Items[i].selfLink)
> else
> WriteLn('Failed to list bucket');
> finally
> AuthHelper.Free;
> GStorageAPI.Free;
> GClient.Free;
> end;
> end.
>
> but I get "ERESTAPI: TBuckets: unsupported array element type : " on this
> line:
>
> Buckets := BucketsResource.List(BucketsListOptions);
>
> Last requests.log entry:
> --------------------------------------------------------------------------------
> Response : 200 : OK
> Headers:
> X-GUploader-UploadID:
> AEnB2UpzLb9Aty5k0H_WnHL49Osv0fAdVGnN6Xenh7DSV2kBiVLiqiCm84KgiRf_23h_5OEH7EPeuprz_s5mTNiOJKFyAjGqqg
> Vary: Origin
> Vary: X-Origin
> Content-Type: application/json; charset=UTF-8
> Expires: Sat, 24 Sep 2016 16:06:20 GMT
> Date: Sat, 24 Sep 2016 16:06:20 GMT
> Cache-Control: private, max-age=0, must-revalidate, no-transform
> Content-Length: 487
> Server: UploadServer
> Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
> Body:
> {
> "kind": "storage#buckets",
> "items": [
> {
> "kind": "storage#bucket",
> "id": "savvy-courage-140719.appspot.com",
> "selfLink":
> "https://www.googleapis.com/storage/v1/b/savvy-courage-140719.appspot.com",
> "projectNumber": "594372726667",
> "name": "savvy-courage-140719.appspot.com",
> "timeCreated": "2016-08-18T19:40:29.031Z",
> "updated": "2016-08-18T19:40:29.031Z",
> "metageneration": "1",
> "location": "US",
> "storageClass": "STANDARD",
> "etag": "CAE="
> }
> ]
> }
>
> What did I miss?
>
>
>
> --
> View this message in context: http://free-pascal-general.1045716.n5.nabble.com/ERESTAPI-TBuckets-unsupported-array-element-type-looks-like-empty-string-tp5726387.html
> Sent from the Free Pascal - General mailing list archive at Nabble.com.
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
More information about the fpc-pascal
mailing list