skip to Main Content

I’m trying to do a basic get request based on the short-lived token recieved from a previous request to instagram. I know the short-lived-access-token is valid.
The account i’m testing with is a test user and the app is in development mode at facebooks end. Furthermore, the app review is currently pending but i dont think that’s the issue since the account i’m testing is a test account and again – the login feature is set to development mode.

When i do the request based on the documentation:

https://developers.facebook.com/docs/instagram-basic-display-api/guides/long-lived-access-tokens/

i get the following response with status code 400:

Sorry, this content isn’t available right now

based on this request format:

  https://graph.instagram.com/access_token
  ?grant_type=ig_exchange_token
  &client_secret={instagram-app-secret}
  &access_token={short-lived-access-token}

Here is the full response:

HTTP/1.1 400 Bad Request
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Vary: Origin
Content-Type: application/json; charset=UTF-8
WWW-Authenticate: OAuth "Facebook Platform" "invalid_token" "Invalid OAuth access token."
Access-Control-Allow-Origin: *
Strict-Transport-Security: max-age=15552000
Pragma: no-cache
Cache-Control: no-store
Expires: Sat, 01 Jan 2000 00:00:00 GMT
x-fb-request-id: Al1knRjoI2Qw1XEVlh4b3Ku
x-fb-trace-id: GasPh1zh4bl
x-fb-rev: 1004118369
X-FB-Debug: 73PsZ2YPe6C2obr8nIdox2r2YOtNoVsuva4y2rRLvd70l06oV8kfdjOzLRhPvLDvpsmc1+5gP42Hc4Pi4AUHLw==
Date: Fri, 16 Jul 2021 04:19:09 GMT
X-FB-TRIP-ID: 1512268381
Connection: keep-alive
Content-Length: 45

Sorry, this content isn't available right now

2

Answers


  1. Exchanging access_token can be tricky sometimes. Let me walk you through another way to get the access_token.

    • First, we make a GET call to get the auth code. Scope depends on the permission given to the Test app.
    https://www.facebook.com/v11.0/dialog/oauth?client_id={app-id}&redirect_uri={your_redirect-uri}&auth_type={rerequest}scope={email}
    
    
    • Now, Your Test App needs login access which further gets redirected to the URL mentioned in the test app. The URL consists of code. Copy the code and don’t include #= part.
    • To get the access token now we make another GET request.
    https://graph.facebook.com/v11.0/oauth/access_token?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URL}&client_secret=${CLIENT_SECRET}&code=${oauth_code}
    
    • This gives you access_token. Copy the access_token and paste that in Access Token Debugger link. You will find out that this comes with no expiry date.
    Login or Signup to reply.
  2. Had this problem too, but fortunately stumbled upon the solution. What was missing for me that I wasn’t requesting the instagram_graph_user_profile permission when authorizing the user.

    This permission is listed as being required for the access_token endpoint, and for me made the difference between getting "Sorry, this content isn’t available" and a long-lived access token.

    i.e.

    https://api.instagram.com/oauth/authorize
        ?client_id={app-id}
        &redirect_uri={redirect-uri}
        &scope=user_profile,user_media,instagram_graph_user_profile
        &response_type=code
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search