This article explains how to authenticate your users with Instagram using GeneXus Access Manager (GAM).
You need to use OAuth 2.0 Authentication Type and do some configurations on both sides: Meta for Developers portal and GAM's backend.
1. Go to https://developers.facebook.com/apps/ and click on "Create Application".
2. Go to "Set Up" under the Develop your app panel, and click on "Basic Information".
3. Add your redirect URIs, for example, https://domain/base-url/oauth/gam/callback
Note: Leave all the other default values.
4. Go to the "Panel" option in the right panel and in "Add a Product" choose Instagram Basic Information > Configure.
5. Click on "Create New App".
6. Save your App ID and the Secret Key.
7. Add a Redirect URI, Deauthorize URL, and User Data Deletion URL.
Redirect URI : https://domain/base-url/oauth/gam/callback
8. Finally, go to Application Roles and add a Developer.
If you get an error message like the following:
{
"error_type": "OAuthException",
"code": 400,
"error_message": "Insufficient developer role"
}
Follow this link to see how to solve it.
1. Enter the GAM Backend and go to the Authentication Types section. Create a new OAuth 2.0 Authentication Type and define basic information in the General section: Name, Description, Images (optional), etc.
2. In the Configuration section, you need to define the following for the General, Authorization, Token, and User Information tabs:
Client ID: client_id Value: <clientid>
Client Secret: client_secret Value: <clientsecret>
Redirect URL: redirect_uri Value: https://<server>/webapp (ie. https://gamidentityprovider.com/v15_IPServerNetSQL)
URL: https://api.instagram.com/oauth/authorize
Response type: response_type Value: code
Scope: scope Value: basic
State: state
Include ClientID and RedirectURL
Response:
Access code TAG: code
Error description TAG: error_description
URL: https://api.instagram.com/oauth/access_token
Header Cotent type: Content-type Value: application/x-www-form-urlencoded
Grant type: grant_type Value: authorization_code
Include All
Response:
Access token TAG: access_token
Token type TAG: token_type
Expires in TAG: expires_in
Refresh Token TAG: Not available for this Provider. When the token expires, it cannot be refreshed.
Error description TAG: error_description
Validate external token = True // When the token expires, the GAM session ends.
Refresh token URL = leave it empty. Uses the same URL used to ask for a Token.
URL: https://api.instagram.com/v1/users/self
Method: Get
Header Content type: Content-type Value: application/json;charset=utf-8
Do not include anything.
Email TAG:
External ID TAG: id
Name TAG: username
First name TAG: full_name
Generate automatic Last name : True
Birthday TAG: birthday
URL image TAG: profile_picture
Error description TAG: error_description
Since GeneXus 15 Upgrade 11
GAM - OAuth 2.0 Authentication Type