API für Fremdanwendungen Sie können das Programm OAUTH2Set.exe auch kostenfrei für die Integration in Fremdanwendungen nutzen. Funktionen: 1. Refresh Acccess auslösen, Parameter cmd filename(ohne pfad) 2. Accesstoken holen, Parameter cmd mapname filename(ohne pfad) Für den Datenaustausch wird ein "Memory Mapped File" benutzt, welches Sie erzeugen müssen, anschliessend OAUTH2Set.exe starten, warten, und das MMF lesen. Als Beispiel finden Sie untenstehend eine Pascal-Umsetzung dafür. Das lässt sich leicht in andere Sprachen übertragen. Rufen Sie OAUTH2Set.exe mit dem Parameter cmd auf. Sie erhalten ein Fenster mit den möglichen Optionen: (** ***********\OAUTH2Set.exe parameter (3 variants): 1. cmd selftest filename (show acccesstoken for filename) 2. cmd fullrefresh (all refresh) 3. cmd mapName filename (write accesstoken for filename to memorymappedfile, recommended size is 1024x1024) the location for all files is C:\Users\Public\Documents\SI-ClientRoot\default\OAuth2.Root\setup\[Computer-Benutzer]\ the file name does not have to contain a path this(!) file must be in the officesi directory this info is now in the clipboard and a pascal implementation of the client site Pascalcode: **) const MMFSize = 1024 * 1024; function CreateMMF(MMFName: AnsiString): Cardinal; var aSA: TSecurityAttributes; begin aSA.nLength := SizeOf(TSecurityAttributes); aSA.bInheritHandle := true; aSA.lpSecurityDescriptor := nil; Result := CreateFileMappingA($FFFFFFFF, @aSA, PAGE_READWRITE, 0, MMFSize, PChar(MMFName)); end; function LocalReadMMF(MapName: AnsiString; out Data: AnsiString): Boolean; var Memory: PChar; MapFile: Cardinal; begin Result := False; MapFile := OpenFileMappingA(FILE_MAP_READ, False, PChar(MapName)); if MapFile > 0 then begin Memory := MapViewOfFile(MapFile, FILE_MAP_READ, 0, 0, 0); if (Memory <> nil) and (StrLen(Memory) <> 0) then begin SetLength(Data, StrLen(Memory)); StrCopy(PChar(Data), Memory); Result := True; end; if Memory <> nil then UnmapViewOfFile(Memory); CloseHandle(MapFile); end; end; procedure ClientMMFFlow(MapName, JSONFileName: AnsiString out Data: AnsiString); begin CreateMMF(MapName); //here call the exe and wait, parameter: MapName JSONFileName LocalReadMMF(MapName, Data); end;