Italian community of Lazarus and Free Pascal

Programmazione => Componenti Aggiuntivi => Topic aperto da: xinyiman - Gennaio 13, 2020, 08:24:58 am

Titolo: Ubuntu e Google API
Inserito da: xinyiman - Gennaio 13, 2020, 08:24:58 am
Ciao ragazzi, a qualcuno di voi è capitato (su ubuntu) che l'esempio per utilizzare il google calendar restituisse il seguente errore:

TCalendarList: unsupported array element type

E se si come avete risolto?
Titolo: Re:Ubuntu e Google API
Inserito da: Stilgar - Gennaio 13, 2020, 10:25:08 am

Ciao.


Sembra che l'eccezione che ti sta affliggendo provenga da questo metodo:
Codice: [Seleziona]



procedure TBaseObject.SetArrayElements(AP : Pointer; ET: PTypeInfo; AValue: TJSONArray);


Var
  I : Integer;
  AN : String;


begin
  AN:=ET^.Name;
  // Fill in all elements
  For I:=0 to AValue.Count-1 do
    begin
    Case ET^.Kind of
      tkClass :
        begin
        TObjectArray(AP)[I]:=CreateObject(AN,GetTypeData(ET)^.ClassType);
        TObjectArray(AP)[I].LoadFromJSON(AValue.Objects[i]);
        end;
      tkFloat :
        if IsDateTimeProp(ET) then
          TDateTimeArray(AP)[I]:=RFC3339ToDateTime(AValue.Strings[i])
        else
          begin
          TFloatArray(AP)[I]:=AValue.Floats[i];
          end;
      tkInt64 :
        TInt64Array(AP)[I]:=AValue.Int64s[i];
      tkBool :
        begin
        TBooleanArray(AP)[I]:=AValue.Booleans[i];
        end;
      tkInteger :
       TIntegerArray(AP)[I]:=AValue.Integers[i];
      tkUstring,
      tkWstring :
        TUnicodeStringArray(AP)[I]:=UTF8Decode(AValue.Strings[i]);
      tkString,
      tkAstring,
      tkLString :
        begin
        TStringArray(AP)[I]:=AValue.Strings[i];
        end;
    else
      Raise ERESTAPI.CreateFmt('%s: unsupported array element type : %s',[ClassName,GetEnumName(TypeInfo(TTypeKind),Ord(ET^.Kind))]);
    end;
    end;
end;




Da quel che capisco l'api che stai utilizzando è "vecchia" rispetto alla ultime specifiche.
Altrimenti il fatto che non riesca a gestire correttamente le property diventa oscuro.
PS:
Do per assodato che la chiave e il resto delle cose di sicurezza google siano impostate correttamente :)




Stilgar

Titolo: Re:Ubuntu e Google API
Inserito da: xinyiman - Gennaio 13, 2020, 11:01:52 am
Ciao Stilgar e grazie della risposta. Le api funzionano ancora bene, perchè da Mac OS l'esempio funziona e anche bene. Si le credenziali sono giuste.
Titolo: Re:Ubuntu e Google API
Inserito da: Stilgar - Gennaio 13, 2020, 11:06:09 am
Iniziamo con le domande di rito allora 😂

Os diversi comportamenti diversi.
Versione tra i due os?
Versione del componente (di conseguenza)
Porte verso il server aperte, firewall abilitati correttamente.

Ot:
Sarebbe da fare una checklist. Son sempre le stesse domande 😂😂😂😂😂

Stilgar
Titolo: Re:Ubuntu e Google API
Inserito da: nomorelogic - Gennaio 13, 2020, 11:17:57 am
@xinyiman

l'autore di quelle api è Michael Van Canneyt (spero di aver scritto bene)
ma lui legge/scrive solo nella mailing list di lazarus

segui il consiglio, metti la ricerca di aiuto li ;)
Titolo: Re:Ubuntu e Google API
Inserito da: xinyiman - Gennaio 13, 2020, 12:19:49 pm
Iniziamo con le domande di rito allora 😂

Os diversi comportamenti diversi.
Versione tra i due os?
Versione del componente (di conseguenza)
Porte verso il server aperte, firewall abilitati correttamente.

Ot:
Sarebbe da fare una checklist. Son sempre le stesse domande 😂😂😂😂😂

Stilgar

Stilgar su entrambi i sistemi ho installato la versione (con fpcupdeluxe)

Lazarus 2.1.0 e FPC 3.2.0

quindi i componenti sono gli stessi. Le porte sono aperte, perchè se abilito i log del programma, ottengo la risposta corretta.
Titolo: Re:Ubuntu e Google API
Inserito da: xinyiman - Gennaio 13, 2020, 12:20:01 pm
@xinyiman

l'autore di quelle api è Michael Van Canneyt (spero di aver scritto bene)
ma lui legge/scrive solo nella mailing list di lazarus

segui il consiglio, metti la ricerca di aiuto li ;)

Grazie proverò :)