when i try to create connected system to use linkedin api by using oAuth client credential, getting the below error message.
Token Request Endpoint :
www.linkedin.com/.../accessToken
Authorization unsuccessful. We could not connect to the token request endpoint. Check the configuration and confirm that it matches what you registered with the protected resource.
Any suggestions?
Discussion posts and replies are publicly visible
You need to specify the grant_type parameter.Try adding this parameter on your connection link grant_type=authorization_code.
Thank you Arthur for your suggestion. i have implemented but getting the below error message:
Authorization unsuccessful. We received the following error:
Seems that you are sending the grant_type twice. Can you check on that?Can you show us the whole request you are doing? And some other connection configuration as well? (Please, beware of sensible information)
I am using 20.1 and specified grant_type only one time .
Base URL: https://api.linkedin.com/v2
Authentication : oAuth 2.0: client credential Grant
client_id: XXXXXXXX
Client_secret : XXXXXX
scope : w_member_social
Are you trying to make calls on behalf on a user (authorization code grant type, 3-legged) or calls of behalf of the Appian system (client credentials grant type, 2-legged)? Appian has different features depending on your answer.
https://developer.linkedin.com/docs/guide/v2/concepts/authentication#auth
https://docs.appian.com/suite/help/20.1/oauth_client_credentials.html
https://docs.appian.com/suite/help/20.1/Oauth_connected_system.html
Appian will send the grant type (and other parameters) for you if you are using these features. If client credentials grant type is what you want, try putting just "https://www.linkedin.com/oauth/v2/accessToken" into the token request endpoint field since Appian will add the rest.
Tried but i am getting the below error message, if i use "https://www.linkedin.com/oauth/v2/accessToken" in token request endpoint field
Can you show the Appian connected system setup? Please omit any sensitive info.
If the connected system client credentials feature isn't working for you, one way to debug is to make a separate Appian Integration Object that requests the token. Details on how are here:
https://auth0.com/docs/api-auth/tutorials/client-credentials#ask-for-a-token
Essentially, you make a POST request to the token endpoint that looks something like this (this is an example scope for Microsoft Graph):
"grant_type=client_credentials& scope=https%3A%2F%2Fgraph.microsoft.com%2F.default& client_id="&ri!clientId&" client_secret="&ri!clientSecret
please find the attached screen snapshot which i configured.
Hi Steven Miccile , hopefully a quick question on this. With the Authorisation Link, when I authorise via the login prompt I can access data no problem via the API's without using anything in the header or body. However, when I then access via the mobile interface I need to sign in again - is this because it is stored on the client side?
Also, how do you access the token to allow it to be stored after using the Authorisation Link? I am assuming access to the token and then refreshing in the background would then prevent having to re-log in once authenticated?
p.s - I am using the FitBit API's as a demo authentication project for learning
It sounds like you are using OAuth 2.0 Authorization Code within your Connected System. The user's token is stored within the Appian Database and you cannot programmatically access it although you can see it if you test the integration object and look at the HTTP request details. Web vs mobile should not affect the functionality, but the token will expire eventually based on FitBit's settings and the user would need to re-authenticate. The best way to check if you need to re-authenticate is to try to make an integration call as the user and if it is unsuccessful, show the user the a!authorizationLink. Remember - the tokens for Auth Code grant type are at a per-user level, meaning each Appian user needs to go through the authentication flow.