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 Twitter: certify to beta #23749

Merged
merged 18 commits into from
Mar 7, 2023
Merged
Show file tree
Hide file tree
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
Original file line number Diff line number Diff line change
Expand Up @@ -2004,7 +2004,7 @@
- name: Twitter
sourceDefinitionId: d7fd4f40-5e5a-4b8b-918f-a73077f8c131
dockerRepository: airbyte/source-twitter
dockerImageTag: 0.1.1
dockerImageTag: 0.1.2
documentationUrl: https://docs.airbyte.com/integrations/sources/twitter
icon: twitter.svg
sourceType: api
Expand Down
11 changes: 7 additions & 4 deletions airbyte-config/init/src/main/resources/seed/source_specs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15704,7 +15704,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
- dockerImage: "airbyte/source-twitter:0.1.1"
- dockerImage: "airbyte/source-twitter:0.1.2"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/twitter"
connectionSpecification:
Expand All @@ -15718,13 +15718,14 @@
properties:
api_key:
type: "string"
title: "API Key Token"
description: "API Key"
title: "Access Token"
description: "App only Bearer Token. See the <a href=\"https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens\"\
>docs</a> for more information on how to obtain this token."
airbyte_secret: true
order: 0
query:
type: "string"
title: "Twitter Search Query"
title: "Search Query"
description: "Query for matching Tweets. You can learn how to build this\
\ query by reading <a href=\"https://developer.twitter.com/en/docs/twitter-api/tweets/search/integrate/build-a-query\"\
> build a query guide </a>."
Expand All @@ -15734,12 +15735,14 @@
title: "Start Date"
description: "The start date for retrieving tweets cannot be more than 7\
\ days in the past."
format: "date-time"
order: 2
end_date:
type: "string"
title: "End Date"
description: "The end date for retrieving tweets must be a minimum of 10\
\ seconds prior to the request time."
format: "date-time"
order: 3
supportsNormalization: false
supportsDBT: false
Expand Down
2 changes: 1 addition & 1 deletion airbyte-integrations/connectors/source-twitter/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ COPY source_twitter ./source_twitter
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]

LABEL io.airbyte.version=0.1.1
LABEL io.airbyte.version=0.1.2
LABEL io.airbyte.name=airbyte/source-twitter
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ definitions:
authenticator:
type: "BearerAuthenticator"
header: "apikey"
api_token: "{{ config['api_key'] }}"
api_token: "{{ config.api_key }}"
request_parameters:
query: "{{ config['query'] }}"
tweet.fields: "author_id,conversation_id,created_at,in_reply_to_user_id,lang"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,24 @@ connectionSpecification:
properties:
api_key:
type: string
title: API Key Token
description: API Key
title: Access Token
description: App only Bearer Token. See the <a href="https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens">docs</a> for more information on how to obtain this token.
airbyte_secret: true
order: 0
query:
type: string
title: Twitter Search Query
title: Search Query
description: Query for matching Tweets. You can learn how to build this query by reading <a href="https://developer.twitter.com/en/docs/twitter-api/tweets/search/integrate/build-a-query"> build a query guide </a>.
order: 1
start_date:
type: string
title: Start Date
description: "The start date for retrieving tweets cannot be more than 7 days in the past."
format: date-time
order: 2
end_date:
type: string
title: End Date
description: "The end date for retrieving tweets must be a minimum of 10 seconds prior to the request time."
format: date-time
order: 3
2 changes: 1 addition & 1 deletion connectors.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@
| **Trello** | <img alt="Trello icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/trello.svg" height="30" height="30"/> | Source | airbyte/source-trello:0.1.6 | alpha | [link](https://docs.airbyte.com/integrations/sources/trello) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-trello) | <small>`8da67652-004c-11ec-9a03-0242ac130003`</small> |
| **Twilio** | <img alt="Twilio icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/twilio.svg" height="30" height="30"/> | Source | airbyte/source-twilio:0.1.16 | generally_available | [link](https://docs.airbyte.com/integrations/sources/twilio) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio) | <small>`b9dc6155-672e-42ea-b10d-9f1f1fb95ab1`</small> |
| **Twilio Taskrouter** | <img alt="Twilio Taskrouter icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/twilio.svg" height="30" height="30"/> | Source | airbyte/source-twilio-taskrouter:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/twilio-taskrouter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio-taskrouter) | <small>`2446953b-b794-429b-a9b3-c821ba992a48`</small> |
| **Twitter** | <img alt="Twitter icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/twitter.svg" height="30" height="30"/> | Source | airbyte/source-twitter:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/twitter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twitter) | <small>`d7fd4f40-5e5a-4b8b-918f-a73077f8c131`</small> |
| **Twitter** | <img alt="Twitter icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/twitter.svg" height="30" height="30"/> | Source | airbyte/source-twitter:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/twitter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twitter) | <small>`d7fd4f40-5e5a-4b8b-918f-a73077f8c131`</small> |
| **Tyntec SMS** | <img alt="Tyntec SMS icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/tyntec.svg" height="30" height="30"/> | Source | airbyte/source-tyntec-sms:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/tyntec-sms) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tyntec-sms) | <small>`3c0c3cd1-b3e0-464a-9090-d3ceb5f92346`</small> |
| **Typeform** | <img alt="Typeform icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/typeform.svg" height="30" height="30"/> | Source | airbyte/source-typeform:0.1.11 | beta | [link](https://docs.airbyte.com/integrations/sources/typeform) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-typeform) | <small>`e7eff203-90bf-43e5-a240-19ea3056c474`</small> |
| **US Census** | <img alt="US Census icon" src="https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config/init/src/main/resources/icons/uscensus.svg" height="30" height="30"/> | Source | airbyte/source-us-census:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/us-census) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-us-census) | <small>`c4cfaeda-c757-489a-8aba-859fb08b6970`</small> |
Expand Down
54 changes: 28 additions & 26 deletions docs/integrations/sources/twitter.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,43 @@
# Twitter API
API Documentation link [here](https://developer.twitter.com/en/docs/twitter-api)
## Overview
# Twitter

The Twitter API source supports full refresh syncs
This page contains the setup guide and reference information for the Twitter source connector.

### Output schema
## Prerequisites

Below output stream is available from this source:
To set up the Twitter source connector, you'll need the [App only Bearer Token](https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens).

[recent_search_tweets](https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent).
## Set up the Twitter connector in Airbyte

1. [Log into your Airbyte Cloud](https://cloud.airbyte.com/workspaces) account or navigate to the Airbyte Open Source dashboard.
2. Click **Sources** and then click **+ New source**.
3. On the Set up the source page, select **Twitter** from the Source type dropdown.
4. Enter the name for the Twitter connector.
5. For **Access Token**, enter the [App only Bearer Token](https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens).
6. For **Search Query**, enter the query for matching Tweets. You can learn how to build this query by reading [build a query guide](https://developer.twitter.com/en/docs/twitter-api/tweets/search/integrate/build-a-query).
7. For **Start Date (Optional)**, enter the date in `YYYY-MM-DDTHH:mm:ssZ` format. The start date for retrieving tweets cannot be more than 7 days in the past.
8. For **End Date (Optional)**, enter the date in `YYYY-MM-DDTHH:mm:ssZ` format. The end date for retrieving tweets must be a minimum of 10 seconds prior to the request time.
9. Click **Set up source**.

### Features
## Supported sync modes

| Feature | Supported? |
|:------------------|:-----------|
| Full Refresh Sync | Yes |
| Incremental Sync | No |
The Twitter source connector supports the following [sync modes](https://docs.airbyte.com/cloud/core-concepts#connection-sync-modes):

### Performance considerations
* [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)

Rate limiting is mentioned in the API [docuemntation](https://developer.twitter.com/en/docs/twitter-api/rate-limits)

## Getting started
## Supported Streams

### Requirements
* [Tweets](https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent)

* Twitter API Key.
## Performance considerations

### Connect using `API Key`:

1. Generate an API Key as described [here](https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens).
2. Use the generated `API Key` in the Airbyte connection.
Rate limiting is mentioned in the API [docuemntation](https://developer.twitter.com/en/docs/twitter-api/rate-limits)

## Changelog

| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:------------------------------------------------|
| 0.1.1 | 2023-03-03 | [23661](https://github.com/airbytehq/airbyte/pull/23661) | Incremental added for the "tweets" stream |
| 0.1.0 | 2022-11-01 | [18883](https://github.com/airbytehq/airbyte/pull/18858) | 🎉 New Source: Twitter |
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:--------------------------------------------------|
| 0.1.2 | 2023-03-06 | [23749](https://github.com/airbytehq/airbyte/pull/23749) | Spec and docs are improved for beta certification |
| 0.1.1 | 2023-03-03 | [23661](https://github.com/airbytehq/airbyte/pull/23661) | Incremental added for the "tweets" stream |
| 0.1.0 | 2022-11-01 | [18883](https://github.com/airbytehq/airbyte/pull/18858) | 🎉 New Source: Twitter |