diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 7966db937ecc9..61598eacee08e 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -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 diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 0e5fcd986d4f2..42e77e5e27dbb 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -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: @@ -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 docs 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 build a query guide ." @@ -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 diff --git a/airbyte-integrations/connectors/source-twitter/Dockerfile b/airbyte-integrations/connectors/source-twitter/Dockerfile index 20b6f57aebc23..7d6f41a1b2660 100644 --- a/airbyte-integrations/connectors/source-twitter/Dockerfile +++ b/airbyte-integrations/connectors/source-twitter/Dockerfile @@ -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 diff --git a/airbyte-integrations/connectors/source-twitter/source_twitter/manifest.yaml b/airbyte-integrations/connectors/source-twitter/source_twitter/manifest.yaml index 37088f784473a..01feb6f08c2ba 100644 --- a/airbyte-integrations/connectors/source-twitter/source_twitter/manifest.yaml +++ b/airbyte-integrations/connectors/source-twitter/source_twitter/manifest.yaml @@ -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" diff --git a/airbyte-integrations/connectors/source-twitter/source_twitter/spec.yaml b/airbyte-integrations/connectors/source-twitter/source_twitter/spec.yaml index 011fff97a70e0..ff249a986e5f9 100644 --- a/airbyte-integrations/connectors/source-twitter/source_twitter/spec.yaml +++ b/airbyte-integrations/connectors/source-twitter/source_twitter/spec.yaml @@ -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 docs 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 build a query guide . 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 diff --git a/connectors.md b/connectors.md index 5aa155f1df7d3..1ea179a5dd845 100644 --- a/connectors.md +++ b/connectors.md @@ -239,7 +239,7 @@ | **Trello** | Trello icon | 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) | `8da67652-004c-11ec-9a03-0242ac130003` | | **Twilio** | Twilio icon | 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) | `b9dc6155-672e-42ea-b10d-9f1f1fb95ab1` | | **Twilio Taskrouter** | Twilio Taskrouter icon | 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) | `2446953b-b794-429b-a9b3-c821ba992a48` | -| **Twitter** | Twitter icon | 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) | `d7fd4f40-5e5a-4b8b-918f-a73077f8c131` | +| **Twitter** | Twitter icon | 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) | `d7fd4f40-5e5a-4b8b-918f-a73077f8c131` | | **Tyntec SMS** | Tyntec SMS icon | 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) | `3c0c3cd1-b3e0-464a-9090-d3ceb5f92346` | | **Typeform** | Typeform icon | 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) | `e7eff203-90bf-43e5-a240-19ea3056c474` | | **US Census** | US Census icon | 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) | `c4cfaeda-c757-489a-8aba-859fb08b6970` | diff --git a/docs/integrations/sources/twitter.md b/docs/integrations/sources/twitter.md index 1a89e0e58c8ef..074c3587ebbcb 100644 --- a/docs/integrations/sources/twitter.md +++ b/docs/integrations/sources/twitter.md @@ -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 |