

# Conexão com o Facebook Page Insights
<a name="connecting-to-data-facebook-page-insights"></a>

O Facebook Pages permite que empresas e outros grupos de interesse criem páginas para a rede social Facebook.com. As empresas usam essas páginas para compartilhar o horário de funcionamento, fazer anúncios e interagir com os clientes online. Se você for usuário do Facebook Page Insights, poderá conectar o AWS Glue à sua conta do Facebook Page Insights. É possível usar o Facebook Page Insights como fonte de dados em suas tarefas de ETL. Execute essas tarefas para transferir dados do Facebook Page Insights para serviços da AWS ou outras aplicações com suporte.

**Topics**
+ [Suporte do AWS Glue para o Facebook Page Insights](facebook-page-insights-support.md)
+ [Políticas que contêm as operações de API para criar e usar conexões](facebook-page-insights-configuring-iam-permissions.md)
+ [Configuração do Facebook Page Insights](facebook-page-insights-configuring.md)
+ [Configuração de conexões do Facebook Page Insights](facebook-page-insights-configuring-connections.md)
+ [Leitura de entidades do Facebook Page Insights](facebook-page-insights-reading-from-entities.md)
+ [Opções de conexão do Facebook Page Insights](facebook-page-insights-connection-options.md)
+ [Limitações e notas do conector do Facebook Page Insights](facebook-page-insights-connector-limitations.md)

# Suporte do AWS Glue para o Facebook Page Insights
<a name="facebook-page-insights-support"></a>

O AWS Glue oferece suporte ao Facebook Page Insights da seguinte forma:

**Compatível como fonte?**  
Sim. É possível usar trabalhos de ETL do AWS Glue para consultar seus dados do Facebook Page Insights.

**Compatível como destino?**  
Nº

**Versões da API do Facebook Page Insights com suporte**  
Versões da API do Facebook Page Insights com suporte:
+ v17
+ v18
+ v19
+ v20
+ v21

# Políticas que contêm as operações de API para criar e usar conexões
<a name="facebook-page-insights-configuring-iam-permissions"></a>

O exemplo de política a seguir descreve as permissões necessárias do AWS IAM para criar e usar conexões. Se você estiver criando um novo perfil, crie uma política que contenha o seguinte:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Se você não quiser usar o método acima, como alternativa use as seguintes políticas do IAM gerenciadas:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole) – Concede acesso a recursos que vários processos do AWS Glue exigem para fazer a execução em seu nome. Esses recursos incluem o AWS Glue, Amazon S3, IAM, CloudWatch Logs e Amazon EC2. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os processos do AWS Glue terão as permissões necessárias. Esta política geralmente é anexada a funções especificadas durante a definição de crawlers, trabalhos e endpoints de desenvolvimento.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): concede acesso total aos recursos do AWS Glue quando uma identidade à qual a política está anexada usa o Console de Gerenciamento da AWS. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os usuários poderão acessar todos os recursos do console. Esta política geralmente é anexada aos usuários do console do AWS Glue.

# Configuração do Facebook Page Insights
<a name="facebook-page-insights-configuring"></a>

Antes de poder usar o AWS Glue para transferir dados do Facebook Page Insights, os seguintes requisitos deverão ser atendidos:

## Requisitos mínimos
<a name="facebook-page-insights-configuring-min-requirements"></a>

Estes são os requisitos mínimos:
+ As contas padrão do Facebook são acessadas diretamente pelo Facebook.
+ A autenticação do usuário é necessária para gerar o token de acesso.
+ O conector do Facebook Page Insights implementa o fluxo do OAuth para tokens de acesso do usuário.
+ O conector usa OAuth 2.0 para autenticar nossas solicitações de API no Facebook Page Insights. Isso se enquadra na arquitetura de autenticação multifator (MFA), que é um superconjunto de 2FA. É uma autenticação baseada na Web.
+ O usuário precisa conceder permissões para acessar os endpoints. Para acessar os dados do usuário, a autorização do endpoint é processada por meio de permissões e recursos.

# Configuração de conexões do Facebook Page Insights
<a name="facebook-page-insights-configuring-connections"></a>

Para configurar uma conexão com o Facebook Page Insights:

1. No AWS Glue Glue Studio, crie uma conexão em **Conexões de dados** seguindo estas etapas:

   1. Ao selecionar um **Tipo de conexão**, selecione Facebook Page Insights.

   1. Selecione o perfil do AWS IAM que o AWS Glue pode assumir e tem permissões para as seguintes ações:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Selecione o URL do código de autorização.

   1. Selecione o `secretName` que você deseja usar para essa conexão no AWS Glue para colocar os tokens.

   1. Selecione as opções de rede se quiser usar sua rede.

1. Conceda permissão ao perfil do IAM associado ao seu trabalho do AWS Glue para ler `secretName`.

# Leitura de entidades do Facebook Page Insights
<a name="facebook-page-insights-reading-from-entities"></a>

**Pré-requisito**

Um objeto do Facebook Page Insights do qual você deseja ler. Você precisará do nome do objeto.

**Entidades compatíveis quanto à origem**:


| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | 
| Conteúdo da página | Sim | Não | Sim | Sim | Sim | 
| Cliques em CTA da página | Sim | Não | Não | Sim | Sim | 
| Engajamento da página | Sim | Não | Não | Sim | Sim | 
| Impressões da página | Sim | Não | Não | Sim | Sim | 
| Publicações da página | Sim | Não | Não | Sim | Sim | 
| Engajamento de publicação da página | Não | Não | Não | Sim | Não | 
| Reações à publicação da página | Não | Não | Não | Sim | Não | 
| Reações à página | Sim | Não | Não | Sim | Sim | 
| Histórias | Sim | Não | Não | Sim | Sim | 
| Demografia dos usuários da página | Sim | Não | Não | Sim | Sim | 
| Visualizações de vídeo da página | Sim | Não | Não | Sim | Sim | 
| Visualizações da página | Sim | Não | Não | Sim | Sim | 
| Publicações de vídeo da página | Sim | Não | Não | Sim | Sim | 
| Páginas | Não | Sim | Não | Sim | Não | 
| Feeds | Sim | Sim | Não | Sim | Sim | 

**Exemplo:**

```
facebookPageInsights_read = glueContext.create_dynamic_frame. from options(
    connection_type="facebookpageinsights",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v21"
   }
```

**Detalhes de campo do Facebook Page Insights**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/facebook-page-insights-reading-from-entities.html)

## Particionamento de consultas
<a name="facebook-page-insights-reading-partitioning-queries"></a>

**Particionamento baseado em filtro**:

É possível fornecer as opções adicionais do Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se quiser utilizar a simultaneidade no Spark. Com esses parâmetros, a consulta original seria dividida em `NUM_PARTITIONS` subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente.
+ `PARTITION_FIELD`: o nome do campo a ser usado para particionar a consulta.
+ `LOWER_BOUND`: um valor limite inferior **inclusivo** do campo de partição escolhido.

  No campo Datetime, aceitamos o formato de carimbo de data/hora do Spark usado em consultas SQL do Spark.

  Exemplos de valores válidos:

  ```
  "2024-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: um valor limite superior **exclusivo** do campo de partição escolhido.
+ `NUM_PARTITIONS`: o número de partições.

Exemplo:

```
facebookPageInsights_read = glueContext.create_dynamic_frame.from_options(
     connection_type="facebookpageinsights",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "entityName",
         "API_VERSION": "v21",
         "PARTITION_FIELD": "created_Time"
         "LOWER_BOUND": "2024-10-27T07:00:00+0000"
         "UPPER_BOUND": "2024-10-27T07:00:00+0000"
         "NUM_PARTITIONS": "10"
     }
```

# Opções de conexão do Facebook Page Insights
<a name="facebook-page-insights-connection-options"></a>

Estas são as opções de conexão do Facebook Page Insights:
+ `ENTITY_NAME`(string): (obrigatório) usado para leitura. O nome do objeto no Facebook Page Insights.
+ `API_VERSION`(string): (obrigatório) usado para leitura. Versão da API Rest do Facebook Page Insights que você deseja usar.
+ `SELECTED_FIELDS`(Lista<String>): padrão: vazio(SELECIONE \$1). Usado para leitura. Colunas que deseja selecionar para o objeto.
+ `FILTER_PREDICATE`(string): padrão: vazio. Usado para leitura. Deve estar no formato Spark SQL.
+ `QUERY`(String): padrão: vazia. Usado para leitura. Consulta completa do Spark SQL.
+ `PARTITION_FIELD`(string): usado para leitura. Campo a ser usado para particionar a consulta.
+ `LOWER_BOUND`(string): usado para leitura. Um valor limite inferior inclusivo do campo de partição escolhido.
+ `UPPER_BOUND`(string): usado para leitura. Um valor limite superior exclusivo do campo de partição escolhido.
+ `NUM_PARTITIONS`(Inteiro): padrão: 1. Usado para leitura. Número de partições para leitura.
+ `INSTANCE_URL` (String): (obrigatório) usado para leitura. Um URL de instância válida do Facebook Page Insights.

# Limitações e notas do conector do Facebook Page Insights
<a name="facebook-page-insights-connector-limitations"></a>

Estas são as limitações ou notas do conector do Facebook Page Insights:
+ A maioria das métricas será atualizada uma vez a cada 24 horas.
+ Somente os últimos dois anos de dados de insights estão disponíveis.
+ Somente 90 dias de insights podem ser visualizados ao mesmo tempo usando os parâmetros `since` e `until`.