Przykład programu PowerShell
Możesz zbiorczo zapraszać użytkowników zewnętrznych do organizacji z adresów e-mail przechowywanych w pliku .csv.
Przygotowywanie pliku .csv
Utwórz nowy plik .csv i nadaj mu nazwę invitations.csv. W tym przykładzie plik jest zapisywany w folderze C:\data i zawiera następujące informacje:
| Nazwa |
ZaproszonyAdresEmailUżytkownika |
| Gmail B2B Invitee |
b2binvitee@gmail.com |
| Zaproszenie B2B programu Outlook |
b2binvitee@outlook.com |
Pobieranie najnowszej wersji programu Microsoft Graph PowerShell
Aby użyć nowych poleceń cmdlet, należy zainstalować zaktualizowany moduł programu Microsoft Graph PowerShell. Aby uzyskać więcej informacji, zobacz Instalowanie zestawu Microsoft Graph PowerShell SDK
Zaloguj się do dzierżawy
Connect-MgGraph -Scopes "User.Invite.All"
Uruchom polecenie cmdlet programu PowerShell
$invitations = import-csv C:\data\invitations.csv
$messageInfo = New-Object Microsoft.Open.MSGraph.Model.InvitedUserMessageInfo
$messageInfo.customizedMessageBody = "Hey there! Check this out. I created an invitation through PowerShell"
foreach ($email in $invitations) {
New-MgInvitation -InviteRedirectUrl "https://wingtiptoysonline-dev-ed.my.woodgrove.com" `
-InvitedUserDisplayName $email.Name -InvitedUserEmailAddress $email.InvitedUserEmailAddress `
-InvitedUserMessageInfo $messageInfo -SendInvitationMessage:$true
}
Ten cmdlet wysyła zaproszenie na adresy e-mail w invitations.csv. Więcej funkcji tego polecenia cmdlet obejmuje:
- Dostosowany tekst w wiadomości e-mail
- Dołączanie nazwy wyświetlanej użytkownika zaproszonego
- Wysyłanie wiadomości do CCs lub całkowite pomijanie wiadomości e-mail
Przykład kodu
Przykładowy kod ilustruje, jak wywołać interfejs API zaproszenia i uzyskać adres URL do realizacji. Użyj adresu URL realizacji, aby wysłać niestandardową wiadomość e-mail z zaproszeniem. Możesz utworzyć wiadomość e-mail przy użyciu klienta HTTP, aby dostosować jego wygląd i wysłać go za pośrednictwem interfejsu API programu Microsoft Graph.
POST https://graph.microsoft.com/v1.0/invitations
Content-type: application/json
{
"invitedUserEmailAddress": "david@fabrikam.com",
"invitedUserDisplayName": "David",
"inviteRedirectUrl": "https://myapp.contoso.com",
"sendInvitationMessage": true
}
using System;
using System.Threading.Tasks;
using Microsoft.Graph;
using Azure.Identity;
namespace SampleInviteApp
{
class Program
{
/// <summary>
/// This is the tenant ID of the tenant you want to invite users to.
/// </summary>
private static readonly string TenantID = "";
/// <summary>
/// This is the application id of the application that is registered in the above tenant.
/// </summary>
private static readonly string TestAppClientId = "";
/// <summary>
/// Client secret of the application.
/// </summary>
private static readonly string TestAppClientSecret = @"";
/// <summary>
/// This is the email address of the user you want to invite.
/// </summary>
private static readonly string InvitedUserEmailAddress = @"";
/// <summary>
/// This is the display name of the user you want to invite.
/// </summary>
private static readonly string InvitedUserDisplayName = @"";
/// <summary>
/// Main method.
/// </summary>
/// <param name="args">Optional arguments</param>
static async Task Main(string[] args)
{
string InviteRedeemUrl = await SendInvitation();
}
/// <summary>
/// Send the guest user invite request.
/// </summary>
private static async string SendInvitation()
{
/// Get the access token for our application to talk to Microsoft Graph.
var scopes = new[] { "https://graph.microsoft.com/.default" };
var clientSecretCredential = new ClientSecretCredential(TenantID, TestAppClientId, TestAppClientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
// Create the invitation object.
var invitation = new Invitation
{
InvitedUserEmailAddress = InvitedUserEmailAddress,
InvitedUserDisplayName = InvitedUserDisplayName,
InviteRedirectUrl = "https://www.microsoft.com",
SendInvitationMessage = true
};
// Send the invitation
var GraphResponse = await graphClient.Invitations
.Request()
.AddAsync(invitation);
// Return the invite redeem URL
return GraphResponse.InviteRedeemUrl;
}
}
}
Zainstaluj następujące pakiety npm:
npm install express
npm install isomorphic-fetch
npm install @azure/identity
npm install @microsoft/microsoft-graph-client
const express = require('express')
const app = express()
const { Client } = require("@microsoft/microsoft-graph-client");
const { TokenCredentialAuthenticationProvider } = require("@microsoft/microsoft-graph-client/authProviders/azureTokenCredentials");
const { ClientSecretCredential } = require("@azure/identity");
require("isomorphic-fetch");
// This is the application id of the application that is registered in the above tenant.
const CLIENT_ID = ""
// Client secret of the application.
const CLIENT_SECRET = ""
// This is the tenant ID of the tenant you want to invite users to. For example fabrikam.onmicrosoft.com
const TENANT_ID = ""
async function sendInvite() {
// Initialize a confidential client application. For more info, visit: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-a-service-principal-with-a-client-secret
const credential = new ClientSecretCredential(TENANT_ID, CLIENT_ID, CLIENT_SECRET);
// Initialize the Microsoft Graph authentication provider. For more info, visit: https://learn.microsoft.com/graph/sdks/choose-authentication-providers?tabs=Javascript#using--for-server-side-applications
const authProvider = new TokenCredentialAuthenticationProvider(credential, { scopes: ['https://graph.microsoft.com/.default'] });
// Create MS Graph client instance. For more info, visit: https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/dev/docs/CreatingClientInstance.md
const client = Client.initWithMiddleware({
debugLogging: true,
authProvider,
});
// Create invitation object
const invitation = {
invitedUserEmailAddress: 'david@fabrikam.com',
invitedUserDisplayName: 'David',
inviteRedirectUrl: 'https://www.microsoft.com',
sendInvitationMessage: true
};
// Execute the MS Graph command. For more information, visit: https://learn.microsoft.com/graph/api/invitation-post
graphResponse = await client.api('/invitations')
.post(invitation);
// Return the invite redeem URL
return graphResponse.inviteRedeemUrl
}
const inviteRedeemUrl = await sendInvite();
Dalsze kroki