Warning: This sample shows how to use GAM with Instagram as an external OAuth 2.0 provider. GeneXus does not support the configuration of this external system. Samples, screenshots, parameters, and/or locations may change over time.
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