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

Edited Instagram Connector doc #17693

Merged
merged 2 commits into from
Oct 7, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 49 additions & 63 deletions docs/integrations/sources/instagram.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,64 @@
# Instagram

This page guides you through the process of setting up the instagram source connector.

This page contains the setup guide and reference information for the Instagram source connector.

## Prerequisites
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reword the Prerequisites to be a list instead of instructions to maintain consistency with other connector docs
(example: Create a Meta for Developers account > Meta for Developers account)


* A Facebook App
* An Instagram Business Account
* A Facebook Page linked to your Instagram Business Account
* A Facebook API Access Token


## Step 1: Set up Instagram

### Facebook App

#### If you don't have a Facebook App

Visit the [Facebook Developers App hub](https://developers.facebook.com/apps/) and create an App and choose "Manage Business Integrations" as the purpose of the app. Fill out the remaining fields to create your app.

### Facebook Page

See the Facebook [support](https://www.facebook.com/business/help/898752960195806) for information about how to add an Instagram Account to your Facebook Page.

### Instagram Business Account

Follow the [Instagram documentation](https://www.facebook.com/business/help/1492627900875762) for setting up an Instagram business account. We'll need this ID to configure Instagram as a source in Airbyte.

* [Meta for Developers account](https://developers.facebook.com)
* [Instagram business account](https://www.facebook.com/business/help/898752960195806) to your Facebook page
* [Instagram Graph API](https://developers.facebook.com/docs/instagram-api/) to your Facebook app
* Facebook API [access token](https://developers.facebook.com/docs/facebook-login/access-tokens/#usertokens)
* [Facebook ad account ID number](https://www.facebook.com/business/help/1492627900875762) (you'll use this to configure Instagram as a source in Airbyte)

## Step 2: Set up the Instagram connector in Airbyte
## Setup Guide

**For Airbyte Cloud:**

1. [Log into your Airbyte Cloud](https://cloud.airbyte.io/workspaces) account.
2. In the left navigation bar, click **Sources**. In the top-right corner, click **+ new source**.
3. On the source setup page, select **Instagram** from the Source type dropdown and enter a name for this connector.
4. Select `Authenticate your account`.
5. Log in and Authorize to the Instagram account and click `Set up source`.

**For Airbyte Open Source:**

1. For using an Access Tokens, set up instagram (see step above).
2. Generate [Access Tokens](https://developers.facebook.com/docs/facebook-login/access-tokens/#usertokens) with the following permissions:
* [instagram\_basic](https://developers.facebook.com/docs/permissions/reference/instagram_basic)
* [instagram\_manage\_insights](https://developers.facebook.com/docs/permissions/reference/instagram_manage_insights)
* [pages\_show\_list](https://developers.facebook.com/docs/permissions/reference/pages_show_list)
* [pages\_read\_engagement](https://developers.facebook.com/docs/permissions/reference/pages_read_engagement)
### Step 1: Set up Instagram​
Generate access tokens with the following permissions:
* [instagram_basic](https://developers.facebook.com/docs/permissions/reference/instagram_basic)
* [instagram_manage_insights](https://developers.facebook.com/docs/permissions/reference/instagram_manage_insights)
* [pages_show_list](https://developers.facebook.com/docs/permissions/reference/pages_show_list)
* [pages_read_engagement](https://developers.facebook.com/docs/permissions/reference/pages_read_engagement)
* [Instagram Public Content Access](https://developers.facebook.com/docs/apps/features-reference/instagram-public-content-access)
3. Go to local Airbyte page.
4. In the left navigation bar, click **Sources**. In the top-right corner, click **+ new source**.
5. On the Set up the source page, enter the name for the Instagram connector and select **Instagram** from the Source type dropdown.
6. Paste your Access Tokens from step 2.
7. Click `Set up source`.

### Step 2: Set up the Instagram connector in Airbyte

#### For Airbyte Cloud

1. Log in to your [Airbyte Cloud](https://cloud.airbyte.io/workspaces) account.
2. Click **Sources** and then click **+ New source**.
3. On the Set up the source page, select **Instagram** from the **Source type** dropdown.
4. Enter a name for your source.
5. Click **Authenticate your Instagram account**.
6. Log in and authorize the Instagram account.
7. Enter the **Start Date** in YYYY-MM-DDT00:00:00Z format. All data generated after this date will be replicated. If this field is blank, Airbyte will replicate all data.
8. Click **Set up source**.

#### For Airbyte Open Source
1. Log in to your Airbyte Open Source account.
2. Click **Sources** and then click **+ New source**.
3. On the Set up the source page, select **Instagram** from the **Source type** dropdown.
4. Enter a name for your source.
5. Click **Authenticate your Instagram account**.
6. Log in and authorize the Instagram account.
7. Enter the **Start Date** in YYYY-MM-DDT00:00:00Z format. All data generated after this date will be replicated. If this field is blank, Airbyte will replicate all data.
8. Paste the access tokens from [Step 1](#step-1-set-up-instagram​).
9. Click **Set up source**.

## Supported sync modes

The Instagram source connector supports the following [sync modes](https://docs.airbyte.com/cloud/core-concepts#connection-sync-modes):
- Full Refresh
- Incremental
* [Full Refresh - Overwrite](https://docs.airbyte.com/understanding-airbyte/glossary#full-refresh-sync)
* [Full Refresh - Append](https://docs.airbyte.com/understanding-airbyte/connections/full-refresh-append)
* [Incremental - Append](https://docs.airbyte.com/understanding-airbyte/connections/incremental-append)
* [Incremental - Deduped History](https://docs.airbyte.com/understanding-airbyte/connections/incremental-deduped-history)

:::note

Incremental sync modes are only available for the [User Insights](https://developers.facebook.com/docs/instagram-api/reference/ig-user/insights) stream.

:::

## Supported Streams
The Instagram source connector supports the following streams. For more information, see the [Instagram Graph API](https://developers.facebook.com/docs/instagram-api/) and [Instagram Insights API documentation](https://developers.facebook.com/docs/instagram-api/guides/insights/).

* [User](https://developers.facebook.com/docs/instagram-api/reference/ig-user)
* [User Insights](https://developers.facebook.com/docs/instagram-api/reference/ig-user/insights)
Expand All @@ -70,24 +67,13 @@ The Instagram source connector supports the following [sync modes](https://docs.
* [Stories](https://developers.facebook.com/docs/instagram-api/reference/ig-user/stories/)
* [Story Insights](https://developers.facebook.com/docs/instagram-api/reference/ig-media/insights)

For more information, see the [Instagram API](https://developers.facebook.com/docs/instagram-api/) and [Instagram Insights API documentation](https://developers.facebook.com/docs/instagram-api/guides/insights/).


### Features

| Feature | Supported?\(Yes/No\) | Notes |
| :---------------- | :------------------- | :----------------- |
| Full Refresh Sync | Yes | |
| Incremental Sync | Yes | only User Insights |

### Rate Limiting & Performance Considerations

Instagram, like all Facebook services, has a limit on the number of requests, but Instagram connector gracefully handles rate limiting.
### Rate Limiting and Performance Considerations

See Facebook's [documentation on rate limiting](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/#instagram-graph-api) for more information.
Instagram limits the number of requests that can be made at a time, but the Instagram connector gracefully handles rate limiting. See Facebook's [documentation on rate limiting](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/#instagram-graph-api) for more information.


## Data type map
AirbyteRecords are required to conform to the [Airbyte type](https://docs.airbyte.com/understanding-airbyte/supported-data-types/) system. This means that all sources must produce schemas and records within these types and all destinations must handle records that conform to this type system.

| Integration Type | Airbyte Type |
| :--------------- | :----------- |
Expand Down