Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Source Intercom: support oauth #6258

Closed
1 task done
sherifnada opened this issue Sep 19, 2021 · 3 comments · Fixed by #7060
Closed
1 task done

Source Intercom: support oauth #6258

sherifnada opened this issue Sep 19, 2021 · 3 comments · Fixed by #7060

Comments

@sherifnada
Copy link
Contributor

sherifnada commented Sep 19, 2021

Tell us about the problem you're trying to solve

With the release of Airbyte Cloud, we need to start supporting Oauth for this connector, since it's the recommended way of authenticating users into a SaaS application.

If this connector doesn't support oauth already (i.e: doesn't accept a client_id and client_secret) then we need to update its spec to accept those parameters. There are two ways to do this:

If the connector already supports some auth mechanism like api_key, I suggest that this be a oneof nested inside a top-level field called "authentication":

{ authentication: { type: object oneOf: [ // api key, // oauth ] } }

If the connector only supports webflow oauth, then no changes are needed to the properties format and we will only need to add annotations.

See the connector spec reference in the docs for reference on how a oneof can be implemented.

This should be done in a backwards compatible manner i.e: users currently supplying authentication info in the config's top-level should not be impacted by this change.

Acceptance Criteria

  1. The connector supports oauth webflow authentication with client_id/client_secret in a backwards compatible manner
  2. Oauth properties are annotated properly. See this PR for an example
@sherifnada sherifnada added area/oauth area/connectors Connector related issues labels Sep 19, 2021
@igrankova igrankova self-assigned this Oct 4, 2021
@lazebnyi lazebnyi assigned lazebnyi and unassigned lazebnyi Oct 4, 2021
@igrankova
Copy link
Contributor

App is under review https://app.intercom.com/a/apps/wjw5eps7/developer-hub/app-packages/60807/review
Oath QA authorization flow passed

@midavadim midavadim self-assigned this Oct 13, 2021
@midavadim midavadim linked a pull request Oct 15, 2021 that will close this issue
38 tasks
@midavadim
Copy link
Contributor

midavadim commented Oct 15, 2021

  • intercom-implement-oauth-java-part

@midavadim
Copy link
Contributor

======== JAVA PART ============

  1. Authorization Code Endpoint

    https://app.intercom.com/oauth?client_id=8d3cadf3...&state=SOME_RANDOM_STATE

  2. Get code from redirect url:

    https://airbyte.io/?code=1a67...&state=SOME_RANDOM_STATE

  3. Trade your authorization code for an access token

    curl https://api.intercom.io/auth/eagle/token
    -X POST
    -H 'Content-Type: application/json'
    -d '{
    "client_id": "8d3cadf3...",
    "client_secret": "4e99c...",
    "code": "1a67..."
    }'

    response:
    {
    "token": "dG9rOjc...",
    "access_token": "dG9rOjc...",
    "token_type": "Bearer"
    }

======== PYTHON PART ============
4. Simply use access_token in requests

$ curl \
-s https://api.intercom.io/users/5321a20f72cdbb4192000013 \
-H 'Authorization:Bearer <access_token>' \
-H 'Accept:application/json'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants