POST Message to Teams Channel with Application-only Permissions Not Allowed for Regular Use Cases

Aperta
#2,285 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
18/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
java
Ambito
api

Direzione di ricerca

Inizia con l’esempio Java di GraphServiceClient nell’issue e con la documentazione collegata di Microsoft Teams sull’importazione dei messaggi. Verifica i vincoli documentati per le richieste POST di messaggi di canale con application-only authentication e le opzioni disponibili di delegated authentication per headless services. Il lavoro è completato quando viene documentato un percorso di autenticazione supportato o viene confermato che non esiste alcun workaround supportato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

status:waiting-for-triage type:feature
Is your feature request related to a problem? Please describe the problem.

Hello,
I am attempting to use the Microsoft Graph API to send messages to a Microsoft Teams channel using application-only authentication with the following code:

import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.microsoft.graph.models.ChatMessage;
import com.microsoft.graph.models.ItemBody;
import com.microsoft.graph.serviceclient.GraphServiceClient;

public class GraphClientExample {
    public static void main(String[] args) throws Exception {

        final String clientId = "****-2189-4dab-a9b8-28dc0f57b181";
        final String tenantId = "****-4b22-4755-a153-421da388048a";
        final String clientSecret = "F1p8Q~**************";

        final String[] scopes = new String[] { "https://graph.microsoft.com/.default" };

        final ClientSecretCredential credential = new ClientSecretCredentialBuilder()
                .clientId(clientId).tenantId(tenantId).clientSecret(clientSecret).build();

        if (null == scopes || null == credential) {
            throw new Exception("Unexpected error");
        }

        final GraphServiceClient graphClient = new GraphServiceClient(credential, scopes);

        ChatMessage chatMessage = new ChatMessage();
        ItemBody body = new ItemBody();
        body.setContent("Hello World");
        chatMessage.setBody(body);
        ChatMessage result = graphClient.teams().byTeamId("459b419d-9d5e-42cd-b59d-*********").channels().byChannelId("19%********************Gu3neGtMFiU8PSRzeaR-uL5AWU1%40thread.tacv2").messages().post(chatMessage);
    }
}

However, I am encountering the following error:
Message POST is allowed in application-only context only for import purposes. Refer to https://docs.microsoft.com/microsoftteams/platform/graph-api/import-messages/import-external-messages-to-teams for more details.
From what I understand, the Microsoft Teams API restricts POST requests in the application-only context to migration or import purposes. This means I am unable to use application-only authentication to send messages to a Teams channel.

Question:

Is there a recommended way to send messages to Microsoft Teams channels using application-only authentication in scenarios other than data migration?
If delegated permissions are required, is there an alternative method to authenticate using delegated permissions in a headless application or server environment?
Any insights or workarounds would be greatly appreciated!

Thank you!

Describe the solution you'd like.

Question:

Is there a recommended way to send messages to Microsoft Teams channels using application-only authentication in scenarios other than data migration?
If delegated permissions are required, is there an alternative method to authenticate using delegated permissions in a headless application or server environment?
Any insights or workarounds would be greatly appreciated!

Additional context?

No response

Lingua principale
Java
Stelle
444
Fork
154
Merge medio
18h 28m
PR unite (30g)
4

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoftgraph/msgraph-sdk-java

Tutte le issue di microsoftgraph/msgraph-sdk-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.