![](/assets/img/posts/token-api-graph-desde-bc/imagen01.png)
Buenas una semana más, en las ultimas semanas hemos visto como configurar el API Graph en Postman ver aquí, configurar Azure y registrar una aplicación ver aquí y en Postman leer un correo ver aquí.
Hoy por fin nos adentraremos un poco más en el tema de la programación que necesitamos para pedir el token a la API Graph. El token como explique es algo necesario para el inicio de las transacciones con API Graph.
No nos entretendremos mucho, así que ¡Vamos manos a la obra! 🧐
Lo primero de todo es crear una codeunit en nuestro proyecto.
codeunit 62000 "Mgt Api Graph"
{
trigger OnRun()
begin
end;
}
Ahora crearemos la función que nos devolverá el token, y añadiremos las variables que necesitaremos.
Empezaremos por el final, los dos labels representan la URL para acceder al token y el scope que se requiere para los headers.
Como mencioné, la lista de scopes solo tendrá uno, pero la codeunit de OAuth2 nos lo pedirá.
Por último, se encuentra la codeunit estándar que nos ayudará a obtener ese preciado token.
local procedure GetToken() AccessToken: text
var
OAuth2: Codeunit OAuth2;
Scopes: List of [Text];
URL: Text;
ScopeLbl: Label 'https://graph.microsoft.com/.default', Locked = true;
UrlTokenLbl: Label 'https://login.microsoftonline.com/%1/oauth2/v2.0/token', Locked = true;
begin
Clear(Scopes);
clear(OAuth2);
Scopes.Add(ScopeLbl);
URL := StrSubstNo(UrlTokenLbl, Tenant);
OAuth2.AcquireTokenWithClientCredentials(ClientID, ClientSecret, URL, '', Scopes, AccessToken);
end;
Primero añadiremos el scope.
Después crearemos la URL.
Y por último, haremos la llamada a la función de la codeunit OAuth2.
Si todo va bien, nos devolverá en la variable AccessToken el token de acceso para Microsoft Graph.
Para comprobar que todo funciona correctamente, añadiremos la llamada en el OnRun y ejecutaremos la codeunit.
trigger OnRun()
var
AccessToken:Text;
begin
//Añadir el dato extraído de Azure
ClientID := '';
ClientSecret := '';
Tenant := '';
UserID := '';
AccessToken := GetToken();
Message('el token es: ' + AccessToken);
end;
Recuerda completar los datos del ClientID, ClientSecret y Tenant.
Hemos aprendido cómo obtener el token de acceso para Microsoft Graph en programación con Business Central. Creamos una codeunit y una función para solicitar el token, utilizando la codeunit OAuth2 y configurando los scopes necesarios. Después de obtener el token, realizamos una prueba ejecutando la codeunit.
Como siempre, podréis ver el ejemplo entero en el GitHub
¡Espero que os resulte útil y emocionante! No dudéis en enviar vuestros comentarios y preguntas. ¡Hasta la próxima!