Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TMS-Google Kalender, APPIDS.INC (https://www.delphipraxis.net/175406-tms-google-kalender-appids-inc.html)

hoika 19. Jun 2013 10:41

TMS-Google Kalender, APPIDS.INC
 
Hallo,

ich probiere gerade den Google-Kalender vom TMS Cloud Pack aus.

// PLEASE USE A VALID INCLUDE FILE THAT CONTAINS THE APPLICATION KEY & SECRET
// FOR THE CLOUD STORAGE SERVICES YOU WANT TO USE
// STRUCTURE OF THIS .INC FILE SHOULD BE
//
// const
// GAppkey = 'xxxxxxxxx';
// GAppSecret = 'yyyyyyyy';

Was soll ich denn hier reinschreiben ???
Woher bekomme ich diese ominöse AppId ?

#Update#
Ich habe jetzt bei AppEngine eine AppId erzeugt.
Fehlermeldung ungültige Client_Id.


Danke


Heiko

Olli73 19. Jun 2013 10:58

AW: TMS-Google Kalender, APPIDS.INC
 
Ich kenne es zwar nicht von Google, ist aber wohl so wie bei MS. Und zwar melden sich die Anwendungen nicht mit Nutzer/Passwort an, sondern eben mit so einem Key (oder was auch immer).

Oft läuft das dann so, dass eine Anwendung auf die Webite des Anbieters (Google, MS, ...) weiterleitet, der User sich dort anmeldet und der App Brechtigungen erteilt. Diese bekommnt dann so einen Key und kann sich damit anmelden.

Vorteil: Die App kennt die Anmeldedaten nicht, die Brechtigungen können festgelegt werden (z.B. nur Kalender oder nur Adressen) und die Brechtigung kann jederzeit entzogen werden.

hoika 19. Jun 2013 12:57

AW: TMS-Google Kalender, APPIDS.INC
 
Hallo,

nennt sich 2-Pass-Auth (OAuth2).
Habe die Id mittlerweise bei Google erzeugt.
Leider bekomme ich keine Kalender geholt.

HTTP1/ 403 forbidden


Heiko

greenmile 19. Jun 2013 12:58

AW: TMS-Google Kalender, APPIDS.INC
 
Schreib am besten dem TMS Support, die reagieren i.d.R. recht zügig auf Anfragen.

ralfschwalbe 19. Jun 2013 15:24

AW: TMS-Google Kalender, APPIDS.INC
 
Die ID bekommst Du direkt von Google. Dort musst Du Deine Anwendung registrieren. Also mit Googlekonto anmelden und dann zu https://code.google.com/apis/console/ gehen.

Steht auch alles so im Cloud-Pack in der "TMS Cloud Pack.pdf" im Verzeichnis "Doc". :roll:

Sorry... Beitrag #3 nicht gelesen... Ich habe das Pack auch im Einsatz. Bei mir geht's...

hoika 20. Jun 2013 06:17

AW: TMS-Google Kalender, APPIDS.INC
 
Hallo,

habe es hinbekommen.
Wichtig ist auch die Konfiguration (das Einschalten) per Google-Konsole.

Hm, die Doc habe ich gelesen, aber erst ab der Seite mit dem Kalender ;)

https://code.google.com/apis/console

Was mich jetzt nervt, ist die Anmeldung bei Google.
Kann man das nicht umgehen ?
Im Bsp. wird der Access-Token in einer Ini gespeichert.
Wie lange bleibt denn dieser Token gültig ?

Heiko

ralfschwalbe 20. Jun 2013 06:48

AW: TMS-Google Kalender, APPIDS.INC
 
Du musst wirklich gemäß den Beispielen arbeiten...

Im Event "OnReceivedAccessToken" musst Du unbedingt die Token mit "SaveTokens" entweder in einer Ini oder in der Registry speichern. Diese gelten dann nur an diesem Rechner und für den angemeldeten Benutzer!

Und beim verbinden dann:

Delphi-Quellcode:
var
  acc : Boolean;
begin
  AdvGCalendar1.LoadTokens;
  try
    acc := AdvGCalendar1.TestTokens;

    if not acc then acc := AdvGCalendar1.RefreshAccess;

    if acc then
    begin
      AdvGCalendar1.GetCalendars;

      // tue irgenwas sinnvolles ;-)
    end
    else AdvGCalendar1.DoAuth;
  except
    on E: SysUtils.Exception do
    begin
      if (Pos('CANNOT OPEN URL', AnsiUpperCase(E.Message)) > 0) or (Pos('UNABLE TO INITIALIZE WININET', AnsiUpperCase(E.Message)) > 0) then
      begin
        MessageDlg('Es kann keine Verbindung zum Internet hergestellt werden!', mtError, [mbOK], 0);
      end
      else raise;
    end;
  end;
end;
Ich habe meinen Kalender seid knapp zwei Monaten in Betrieb und musste mich noch nie neu anmelden... :-D

greenmile 20. Jun 2013 14:19

AW: TMS-Google Kalender, APPIDS.INC
 
Ich würde an dieser Stelle einen Tipp geben, TMS hat den bisher leider noch nicht umgesetzt.
Editiert die
Code:
CloudBase.pas
. Ansonsten könnten User das Fenster kleiner ziehen und es hagelt Fehler.

Code:
function TCloudBase.CreateOAuthForm(url: string; CallBack: TWebBrowserBeforeNavigate2; CallBackComplete: TWebBrowserNavigateComplete2): TForm;
begin
  FOAuthForm := TForm.CreateNew(nil);
  //
  FOAuthForm.BorderIcons := [biSystemMenu, biMaximize]; // Change
  FOAuthForm.Constraints.MinWidth := 640; // Change: Sonst meldet Dropbox Script-Fehler
  FOAuthForm.Constraints.MinHeight := 480; // Change: Sonst meldet Dropbox Script-Fehler
  //
  FBrowser := TWebBrowser.Create(FOAuthForm);
  FBrowser.Align := alClient;
  FBrowser.SetParentComponent(FOAuthForm);
  FBrowser.OnBeforeNavigate2 := CallBack;
  FBrowser.OnNavigateComplete2 := CallBackComplete;
  FBrowser.Navigate(url);
  FOAuthForm.Width := AuthFormSettings.Width;
  FOAuthForm.Height := AuthFormSettings.Height;
  FOAuthForm.Caption := AuthFormSettings.Caption;
  FOAuthForm.Position := poScreenCenter;
  FOAuthForm.OnClose := DoFormClose;
  FOAuthForm.ShowModal;
  Result := FOAuthForm;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz