使用 Microsoft Graph 建置 Python 應用程式

取得使用者

在本節中,您會將 Microsoft Graph 併入應用程式。 針對此應用程式,您將使用 Microsoft Graph SDK for Python (預覽) 來呼叫 Microsoft Graph。

  1. 將下列函式新增至 graph.py

    async def get_user(self):
        # Only request specific properties using $select
        query_params = UserItemRequestBuilder.UserItemRequestBuilderGetQueryParameters(
            select=['displayName', 'mail', 'userPrincipalName']
        )
    
        request_config = UserItemRequestBuilder.UserItemRequestBuilderGetRequestConfiguration(
            query_parameters=query_params
        )
    
        user = await self.user_client.me.get(request_configuration=request_config)
        return user
    
  2. 以下列內容取代 main.py 中的空白greet_user函式。

    async def greet_user(graph: Graph):
        user = await graph.get_user()
        if user:
            print('Hello,', user.display_name)
            # For Work/school accounts, email is in mail property
            # Personal accounts, email is in userPrincipalName
            print('Email:', user.mail or user.user_principal_name, '\n')
    

如果您現在執行應用程式,在您登入應用程式之後,會依名稱歡迎您。

Hello, Megan Bowen!
Email: MeganB@contoso.com

程式代碼說明

請考慮函式中的程序 get_user 代碼。 這隻是幾行,但有一些重要詳細數據需要注意。

存取 'me'

函式會建置對 Get 使用者 API 的要求。 此 API 有兩種方式可供存取:

GET /me
GET /users/{user-id}

在此情況下,程式代碼會呼叫 GET /me API 端點。 這是在不知道使用者標識碼的情況下取得已驗證使用者的快捷方式。

注意

GET /me因為 API 端點會取得已驗證的使用者,所以它只適用於使用使用者驗證的應用程式。 僅限應用程式的驗證應用程式無法存取此端點。

要求特定屬性

函式會使用 $select 查詢參數 來指定所需的屬性集。 Microsoft Graph 只會在回應中傳回要求的屬性。 在 get_user中,這是使用 select 物件中的 MeRequestBuilderGetQueryParameters 參數來完成。