

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 呼叫人臉活體 API
<a name="face-liveness-calling-apis"></a>

您可以使用任何支援的 AWS SDK 測試 Amazon Rekognition 人臉活體，例如 [AWS Python 開發套件 Boto3](https://docs.aws.amazon.com/pythonsdk/) 或適用於 [Java 的 AWS 開發套件](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html)。您可以使用所選的 SDK 來呼叫 `CreateFaceLivenessSession` 和 `GetFaceLivenessSessionResults` API。下一節將示範如何使用 Python 和 Java SDK 呼叫這些 API。

 **若要呼叫人臉活體 API**：
+ 如果您尚未這麼做，請建立或更新具有 `AmazonRekognitionFullAccess` 權限的使用者。如需詳細資訊，請參閱[步驟 1：設定 AWS 帳戶並建立使用者](https://docs.aws.amazon.com/rekognition/latest/dg/setting-up.html#setting-up-iam)。
+ 如果您尚未準備就緒，請安裝並設定 AWS CLI 與 AWS SDK。如需詳細資訊，請參閱[步驟 2：設定 AWS CLI 和 AWS SDK](https://docs.aws.amazon.com/rekognition/latest/dg/setup-awscli-sdk.html)。

------
#### [ Python ]

下面的片段顯示了如何在 Python 應用程式中呼叫這些 API。請注意，若要執行此範例，您必須至少使用 Boto3 SDK 的 1.26.110 版本，但建議您使用最新版本的 SDK。

```
import boto3

session = boto3.Session(profile_name='default') 
client = session.client('rekognition')

def create_session():

    response = client.create_face_liveness_session()
    
    session_id = response.get("SessionId")
    print('SessionId: ' + session_id)

    return session_id
    
    
def get_session_results(session_id):

    response = client.get_face_liveness_session_results(SessionId=session_id)
    
    confidence = response.get("Confidence")
    status = response.get("Status")
    
    print('Confidence: ' + "{:.2f}".format(confidence) + "%")
    print('Status: ' + status)
    
    return status


def main():
    session_id = create_session()
    print('Created a Face Liveness Session with ID: ' + session_id)
    
    status = get_session_results(session_id)
    print('Status of Face Liveness Session: ' + status)
        

if __name__ == "__main__":
    main()
```

------
#### [ Java ]

下列程式碼片段顯示如何在 Java 應用程式中呼叫這些 API：

```
package aws.example.rekognition.liveness;

import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.AmazonRekognitionException;
import com.amazonaws.services.rekognition.model.CreateFaceLivenessSessionRequest;
import com.amazonaws.services.rekognition.model.CreateFaceLivenessSessionResult;
import com.amazonaws.services.rekognition.model.GetFaceLivenessSessionResultsRequest;
import com.amazonaws.services.rekognition.model.GetFaceLivenessSessionResultsResult;

public class DemoLivenessApplication {

    static AmazonRekognition rekognitionClient;

    public static void main(String[] args) throws Exception {
        
        rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
        
        try {
            String sessionId = createSession();
            System.out.println("Created a Face Liveness Session with ID: " + sessionId);
            
            String status = getSessionResults(sessionId);
            System.out.println("Status of Face Liveness Session: " + status);
        
        } catch(AmazonRekognitionException e) {
           e.printStackTrace();
        }
    }
    
    private static String createSession() throws Exception {
        
        CreateFaceLivenessSessionRequest request = new CreateFaceLivenessSessionRequest();
        CreateFaceLivenessSessionResult result = rekognitionClient.createFaceLivenessSession(request);
           
        String sessionId = result.getSessionId();
        System.out.println("SessionId: " + sessionId);
        
        return sessionId;
    }
    
    private static String getSessionResults(String sessionId) throws Exception {
        
        GetFaceLivenessSessionResultsRequest request = new GetFaceLivenessSessionResultsRequest().withSessionId(sessionId);
        GetFaceLivenessSessionResultsResult result = rekognitionClient.getFaceLivenessSessionResults(request);
          
        Float confidence = result.getConfidence();
        String status = result.getStatus();

        System.out.println("Confidence: " + confidence);
        System.out.println("status: " + status);
        
        return status;
    }   
}
```

------
#### [ Java V2 ]

下列程式碼片段示範如何使用 AWS Java V2 SDK 呼叫人臉活體 APIs：

```
package aws.example.rekognition.liveness;

import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.AmazonRekognitionException;
import com.amazonaws.services.rekognition.model.CreateFaceLivenessSessionRequest;
import com.amazonaws.services.rekognition.model.CreateFaceLivenessSessionResult;
import com.amazonaws.services.rekognition.model.GetFaceLivenessSessionResultsRequest;
import com.amazonaws.services.rekognition.model.GetFaceLivenessSessionResultsResult;

public class DemoLivenessApplication {

    static AmazonRekognition rekognitionClient;

    public static void main(String[] args) throws Exception {
        
        rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
        
        try {
            String sessionId = createSession();
            System.out.println("Created a Face Liveness Session with ID: " + sessionId);
            
            String status = getSessionResults(sessionId);
            System.out.println("Status of Face Liveness Session: " + status);
        
        } catch(AmazonRekognitionException e) {
           e.printStackTrace();
        }
    }
    
    private static String createSession() throws Exception {
        
        CreateFaceLivenessSessionRequest request = new CreateFaceLivenessSessionRequest();
        CreateFaceLivenessSessionResult result = rekognitionClient.createFaceLivenessSession(request);
           
        String sessionId = result.getSessionId();
        System.out.println("SessionId: " + sessionId);
        
        return sessionId;
    }
    
    private static String getSessionResults(String sessionId) throws Exception {
        
        GetFaceLivenessSessionResultsRequest request = new GetFaceLivenessSessionResultsRequest().withSessionId(sessionId);
        GetFaceLivenessSessionResultsResult result = rekognitionClient.getFaceLivenessSessionResults(request);
          
        Float confidence = result.getConfidence();
        String status = result.getStatus();

        System.out.println("Confidence: " + confidence);
        System.out.println("status: " + status);
        
        return status;
    }   
}
```

------
#### [ Node.Js ]

下列程式碼片段示範如何使用 AWS Node.Js SDK 呼叫人臉活體 APIs：

```
const Rekognition = require("aws-sdk/clients/rekognition");

const rekognitionClient = new Rekognition({ region: "us-east-1" });

async function createSession() {
    const response = await rekognitionClient.createFaceLivenessSession().promise();

    const sessionId = response.SessionId;
    console.log("SessionId:", sessionId);

    return sessionId;
}

async function getSessionResults(sessionId) {
    const response = await rekognitionClient
        .getFaceLivenessSessionResults({
            SessionId: sessionId,
        })
        .promise();

    const confidence = response.Confidence;
    const status = response.Status;
    console.log("Confidence:", confidence);
    console.log("Status:", status);

    return status;
}

async function main() {
    const sessionId = await createSession();
    console.log("Created a Face Liveness Session with ID:", sessionId);

    const status = await getSessionResults(sessionId);
    console.log("Status of Face Liveness Session:", status);
}

main();
```

------
#### [ Node.Js (Javascript SDK v3) ]

下列程式碼片段示範如何使用 AWS Node.Js SDK for Javascript v3 呼叫人臉活體 APIs：

```
import { RekognitionClient, CreateFaceLivenessSessionCommand } from "@aws-sdk/client-rekognition"; // ES Modules 
import const { RekognitionClient, CreateFaceLivenessSessionCommand } = require("@aws-sdk/client-rekognition"); // CommonJS import
const client = new RekognitionClient(config);
const input = { 
  KmsKeyId: "STRING_VALUE",
  Settings: { 
    OutputConfig: { // LivenessOutputConfig
      S3Bucket: "STRING_VALUE", // required
      S3KeyPrefix: "STRING_VALUE",
    },
    AuditImagesLimit: Number("int"),
  },
  ClientRequestToken: "STRING_VALUE",
};
const command = new CreateFaceLivenessSessionCommand(input);
const response = await client.send(command);
// { // CreateFaceLivenessSessionResponse
//   SessionId: "STRING_VALUE", // required
// };
```

------