Este guia explica como usar a janela de autorização para obter tokens de acesso do usuário do Instagram de curta duração e permissões de usuários do Instagram.
A janela de autorização permite que usuários concedam ao seu aplicativo permissões e tokens de acesso do usuário do Instagram de curta duração. Depois de fazer o login e escolher os dados aos quais o aplicativo terá acesso, o usuário é redirecionado ao aplicativo, e incluímos um código de autorização, que você pode trocar por um token de acesso de curta duração.
Para dar início ao processo, obtenha a "janela de autorização" e a forneça ao usuário:
https://api.instagram.com/oauth/authorize ?client_id={instagram-app-id} &redirect_uri={redirect-uri} &scope={scope} &response_type=code &state={state} //Optional
Todos os parâmetros, exceto state
, são obrigatórios.
Parâmetro | Exemplo de valor | Descrição |
---|---|---|
|
| ID do aplicativo do Instagram exibido em Painel de Aplicativos > Produtos > Instagram > Exibição básica. |
|
| Um URI para onde serão redirecionados os usuários depois que a solicitação de permissão for autorizada ou negada. Verifique se ele corresponde exatamente aos URIs básicos em sua lista de URIs do OAuth válidos. Tenha em mente que o Painel de Aplicativos pode adicionar uma barra à direita no final dos seus URIs. Por isso, é recomendado consultar a lista para fins de verificação. |
|
| Configure esse valor para |
|
| Uma lista separada por vírgulas ou uma lista separada por espaços em formato URL das permissões a serem solicitadas do usuário do aplicativo. O |
|
| Um valor opcional que indica um estado específico do servidor. Por exemplo, use isso para se proteger de problemas relacionados a CSRF. Incluiremos esse parâmetro e o valor correspondente ao redirecionar o usuário de volta para você. |
https://api.instagram.com/oauth/authorize ?client_id=990602627938098 &redirect_uri=https://socialsizzle.herokuapp.com/auth/ &scope=user_profile,user_media &response_type=code
Caso a autorização seja bem-sucedida, o usuário será redirecionado a seu redirect_uri
e você receberá um código de autorização por meio do parâmetro da string de consulta code
. Capture o código para que o aplicativo possa trocá-lo por um token de acesso do usuário do Instagram de curta duração.
Os códigos de autorização têm validade de uma hora e só podem ser usados uma vez.
https://socialsizzle.herokuapp.com/auth/?code=AQBx-hBsH3...#_
Observe que #_
será anexado ao final do URI de redirecionamento, mas não faz parte do código em si e deve ser excluído.
Caso o usuário cancele o fluxo de autorização, ele será redirecionado para seu redirect_uri
, e os seguintes parâmetros de erro serão anexados. Em caso de falha, é sua responsabilidade reconhecer o erro e exibir uma mensagem adequada para os usuários.
Parâmetro | Valor |
---|---|
|
|
|
|
|
|
https://socialsizzle.herokuapp.com/auth/?error=access_denied &error_reason=user_denied &error_description=The+user+denied+your+request
Depois de receber o código, troque-o por um token de acesso de curta duração enviando uma solicitação POST
para o seguinte ponto de extremidade:
POST https://api.instagram.com/oauth/access_token
Inclua os seguintes parâmetros no corpo da solicitação POST.
Parâmetro | Exemplo de valor | Descrição |
---|---|---|
|
| ID do aplicativo do Instagram exibido em Painel de Aplicativos > Produtos > Instagram > Exibição básica. |
|
| A chave secreta do aplicativo do Instagram exibida em Painel de Aplicativos > Produtos > Instagram > Exibição básica. |
|
| O código de autorização que você recebeu no parâmetro |
|
| Configure esse valor para |
|
| O URI de redirecionamento que você informou ao direcionar o usuário à janela de autorização. O URI deve ser o mesmo, caso contrário, a solicitação será rejeitada. |
curl -X POST \ https://api.instagram.com/oauth/access_token \ -F client_id=990602627938098 \ -F client_secret=eb8c7... \ -F grant_type=authorization_code \ -F redirect_uri=https://socialsizzle.herokuapp.com/auth/ \ -F code=AQBx-hBsH3...
Em caso de sucesso, a API retornará uma carga JSON contendo o token de acesso de curta duração do usuário do aplicativo e o número de identificação do usuário.
{ "access_token": "IGQVJ...", "user_id": 17841405793187218 }
Capture o valor access_token
. Esse é o token de acesso do usuário do Instagram de curta duração que o aplicativo usará para acessar os pontos de extremidade da API de Exibição básica do Instagram.
Caso a solicitação apresente alguma irregularidade, a API retornará um erro.
{ "error_type": "OAuthException", "code": 400, "error_message": "Matching code was not found or was already used" }