diff --git a/docs/modules/ROOT/assets/images/kamelets/twitter-timeline-source.svg b/docs/modules/ROOT/assets/images/kamelets/twitter-timeline-source.svg new file mode 100644 index 000000000..c0364cc15 --- /dev/null +++ b/docs/modules/ROOT/assets/images/kamelets/twitter-timeline-source.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index db369650a..945672ac5 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -35,5 +35,6 @@ * xref:ROOT:telegram-source.adoc[image:kamelets/telegram-source.svg[] Telegram Source] * xref:ROOT:timer-source.adoc[image:kamelets/timer-source.svg[] Timer Source] * xref:ROOT:twitter-search-source.adoc[image:kamelets/twitter-search-source.svg[] Twitter Search Source] +* xref:ROOT:twitter-timeline-source.adoc[image:kamelets/twitter-timeline-source.svg[] Twitter Timeline Source] * xref:ROOT:webhook-source.adoc[image:kamelets/webhook-source.svg[] Webhook Source] // THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT diff --git a/docs/modules/ROOT/pages/twitter-timeline-source.adoc b/docs/modules/ROOT/pages/twitter-timeline-source.adoc new file mode 100644 index 000000000..1ed593bd7 --- /dev/null +++ b/docs/modules/ROOT/pages/twitter-timeline-source.adoc @@ -0,0 +1,71 @@ +// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT += image:kamelets/twitter-timeline-source.svg[] Twitter Timeline Source + +*Provided by: "Apache Software Foundation"* + +Allows to get tweets from the timeline of a specific user from Twitter. + +It requires tokens that can be obtained by creating an application +in the Twitter developer portal: https://developer.twitter.com/. + +== Configuration Options + +The following table summarizes the configuration options available for the `twitter-timeline-source` Kamelet: +[width="100%",cols="2,^2,3,^2,^2,^3",options="header"] +|=== +| Property| Name| Description| Type| Default| Example +| *accessToken {empty}* *| Access Token| The Access Token from the Twitter application in the developer portal| string| | +| *accessTokenSecret {empty}* *| Access Token Secret| The Access Token Secret from the Twitter application in the developer portal| string| | +| *apiKey {empty}* *| API Key| The API Key from the Twitter application in the developer portal| string| | +| *apiKeySecret {empty}* *| API Key Secret| The API Key Secret from the Twitter application in the developer portal| string| | +| *user {empty}* *| User| The user we want to read the timeline| string| | `"ApacheCamel"` +|=== + +NOTE: Fields marked with ({empty}*) are mandatory. + +== Usage + +This section summarizes how the `twitter-timeline-source` can be used in various contexts. + +=== Knative Source + +The `twitter-timeline-source` Kamelet can be used as Knative source by binding it to a Knative object. + +.twitter-timeline-source-binding.yaml +[source,yaml] +---- +apiVersion: camel.apache.org/v1alpha1 +kind: KameletBinding +metadata: + name: twitter-timeline-source-binding +spec: + source: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: twitter-timeline-source + properties: + accessToken: "The Access Token" + accessTokenSecret: "The Access Token Secret" + apiKey: "The API Key" + apiKeySecret: "The API Key Secret" + user: "ApacheCamel" + sink: + ref: + kind: InMemoryChannel + apiVersion: messaging.knative.dev/v1 + name: mychannel + +---- + +Make sure you have xref:latest@camel-k::installation/installation.adoc[Camel K installed] into the Kubernetes cluster you're connected to. + +Save the `twitter-timeline-source-binding.yaml` file into your hard drive, then configure it according to your needs. + +You can run the source using the following command: + +[source,shell] +---- +kubectl apply -f twitter-timeline-source-binding.yaml +---- +// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT diff --git a/twitter-timeline.kamelet.yaml b/twitter-timeline.kamelet.yaml new file mode 100755 index 000000000..ea2f59967 --- /dev/null +++ b/twitter-timeline.kamelet.yaml @@ -0,0 +1,74 @@ +apiVersion: camel.apache.org/v1alpha1 +kind: Kamelet +metadata: + name: twitter-timeline-source + annotations: + camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjIwOXB4IiB2aWV3Qm94PSIwIDAgMjU2IDIwOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8Zz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1LjQ1MDAyNTkgQzI0Ni41ODA4NDEsMjkuNjI3MjY3MiAyMzYuNDU4NDUxLDMyLjQ1MDQ4NjggMjI1LjgzNDE1NiwzMy43MjAyMzMzIEMyMzYuNjc4NTAzLDI3LjIxOTgwNTMgMjQ1LjAwNTgzLDE2LjkyNjk5MjkgMjQ4LjkyNzQzNyw0LjY2MzA3Njg1IEMyMzguNzc5NzY1LDEwLjY4MTI2MzMgMjI3LjUzOTMyNSwxNS4wNTIzMzc2IDIxNS41NzU5OSwxNy40MDgyOTggQzIwNS45OTQ4MzUsNy4yMDA2OTcxIDE5Mi4zNDUwNiwwLjgyMiAxNzcuMjM5MTk3LDAuODIyIEMxNDguMjMyNjA1LDAuODIyIDEyNC43MTYwNzYsMjQuMzM3NTkzMSAxMjQuNzE2MDc2LDUzLjM0MjMxMTYgQzEyNC43MTYwNzYsNTcuNDU4Njg3NSAxMjUuMTgxNDYyLDYxLjQ2NzM3ODQgMTI2LjA3NjY1Miw2NS4zMTEyNjQ0IEM4Mi40MjU4Mzg1LDYzLjEyMTA0NTMgNDMuNzI1NzI1Miw0Mi4yMTE0MjkgMTcuODIxMzk4LDEwLjQzNTkyODggQzEzLjMwMDUwMTEsMTguMTkyOTkzOCAxMC43MTA0NDMsMjcuMjE1MTIzNCAxMC43MTA0NDMsMzYuODQwMjg4OSBDMTAuNzEwNDQzLDU1LjA2MTUyNiAxOS45ODM1MjU0LDcxLjEzNzQ5MDcgMzQuMDc2MjEzNSw4MC41NTU3MTM3IEMyNS40NjYwOTYxLDgwLjI4MzIyMzkgMTcuMzY4MTg0Niw3Ny45MjA3MDg4IDEwLjI4NjI1NzcsNzMuOTg2OTI5MiBDMTAuMjgyNTEyMiw3NC4yMDYwNDQ4IDEwLjI4MjUxMjIsNzQuNDI2MDk2NyAxMC4yODI1MTIyLDc0LjY0NzA4NSBDMTAuMjgyNTEyMiwxMDAuMDk0NDUzIDI4LjM4NjcwMDMsMTIxLjMyMjQ0MyA1Mi40MTM1NjMsMTI2LjE0NjczIEM0OC4wMDU5Njk1LDEyNy4zNDcxODQgNDMuMzY2MTUwOSwxMjcuOTg4NjEyIDM4LjU3NTU3MzQsMTI3Ljk4ODYxMiBDMzUuMTkxNDU1NCwxMjcuOTg4NjEyIDMxLjkwMDk3NjYsMTI3LjY1OTkzOCAyOC42OTQ3NzMsMTI3LjA0NjYwMiBDMzUuMzc3Nzk3MywxNDcuOTEzMTQ1IDU0Ljc3NDIwNTMsMTYzLjA5NzY2NSA3Ny43NTY5OTE4LDE2My41MjE4NSBDNTkuNzgyMDI1NywxNzcuNjA3OTgzIDM3LjEzNTQwMzYsMTg2LjAwNDYwNCAxMi41Mjg5MTQ3LDE4Ni4wMDQ2MDQgQzguMjg5ODcxNjEsMTg2LjAwNDYwNCA0LjEwODg4NDc0LDE4NS43NTY0NiAwLDE4NS4yNzE0MDkgQzIzLjI0MzEwMzMsMjAwLjE3MzEzOSA1MC44NTA3MjYxLDIwOC44Njc1MzIgODAuNTEwOTE4NSwyMDguODY3NTMyIEMxNzcuMTE2NTI5LDIwOC44Njc1MzIgMjI5Ljk0Mzk3NywxMjguODM2OTgyIDIyOS45NDM5NzcsNTkuNDMyNjAwMiBDMjI5Ljk0Mzk3Nyw1Ny4xNTUyOTY4IDIyOS44OTM0MTIsNTQuODkwMTY2NCAyMjkuNzkyMjgyLDUyLjYzODE0NTQgQzI0MC4wNTMyNTcsNDUuMjMzMTYzNSAyNDguOTU4MzM4LDM1Ljk4MjU1NDUgMjU2LDI1LjQ1MDAyNTkiIGZpbGw9IiM1NWFjZWUiPjwvcGF0aD4KICAgIDwvZz4KPC9zdmc+" + camel.apache.org/provider: "Apache Software Foundation" + labels: + camel.apache.org/kamelet.type: "source" + camel.apache.org/kamelet.group: "Twitter" +spec: + definition: + title: "Twitter Timeline Source" + description: |- + Allows to get tweets from the timeline of a specific user from Twitter. + + It requires tokens that can be obtained by creating an application + in the Twitter developer portal: https://developer.twitter.com/. + required: + - user + - apiKey + - apiKeySecret + - accessToken + - accessTokenSecret + properties: + user: + title: User + description: The user we want to read the timeline + type: string + example: "ApacheCamel" + apiKey: + title: API Key + description: The API Key from the Twitter application in the developer portal + type: string + format: password + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + apiKeySecret: + title: API Key Secret + description: The API Key Secret from the Twitter application in the developer portal + type: string + format: password + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + accessToken: + title: Access Token + description: The Access Token from the Twitter application in the developer portal + type: string + format: password + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + accessTokenSecret: + title: Access Token Secret + description: The Access Token Secret from the Twitter application in the developer portal + type: string + format: password + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + types: + out: + mediaType: application/json + flow: + from: + uri: "twitter-timeline:user" + parameters: + user: "{{user}}" + accessToken: "{{accessToken}}" + accessTokenSecret: "{{accessTokenSecret}}" + consumerKey: "{{apiKey}}" + consumerSecret: "{{apiKeySecret}}" + steps: + - marshal: + json: {} + - to: "kamelet:sink"