From c8bd4a7ed262d9fab1623448e97529196e8f1a16 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Tue, 13 Jun 2023 19:18:26 -0400 Subject: [PATCH] Hashtag API (Independent Publisher) (#2688) * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit 096a7c31993f909c3ee2ccacb4d6a206a1a2b2a3, reversing changes made to cb0948670feda35e9fc2a43241de68bc50e06812. * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit cb0948670feda35e9fc2a43241de68bc50e06812, reversing changes made to dc26e8a0268f26bc2f38bf3a66e8c90e98df9404. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit 01764d0a6d9e3afa849a6a4159d751aee6108580. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit a3f086ef0f4e8b47ec14e9287ec7ebc29a09ea33. * Add files via upload * Revert "Add files via upload" This reverts commit eeff7b7a02a5c65406413e7c848ebc718c30183e. * Add files via upload * Delete independent-publisher-connectors/FileIO directory * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Revert "Add files via upload" This reverts commit 1d855069580b1ee4670c7c8e3b2edec4e0d63cd5. * Add files via upload --- .../Hashtag API/apiDefinition.swagger.json | 417 ++++++++++++++++++ .../Hashtag API/apiProperties.json | 35 ++ .../Hashtag API/readme.md | 35 ++ 3 files changed, 487 insertions(+) create mode 100644 independent-publisher-connectors/Hashtag API/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Hashtag API/apiProperties.json create mode 100644 independent-publisher-connectors/Hashtag API/readme.md diff --git a/independent-publisher-connectors/Hashtag API/apiDefinition.swagger.json b/independent-publisher-connectors/Hashtag API/apiDefinition.swagger.json new file mode 100644 index 000000000..567a6f0b1 --- /dev/null +++ b/independent-publisher-connectors/Hashtag API/apiDefinition.swagger.json @@ -0,0 +1,417 @@ +{ + "swagger": "2.0", + "info": { + "title": "Hashtag API", + "description": "The Hashtag Generator service allows you to generate relevant hashtags for your content based on a given keyword or image.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "hashtag5.p.rapidapi.com", + "basePath": "/api/v2.1/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/tag/predict": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get similar hashtags", + "description": "Retrieve a list of all similar hashtags.", + "operationId": "HashtagsSimilarGet", + "parameters": [ + { + "name": "keyword", + "in": "query", + "x-ms-summary": "Hashtag", + "description": "The hashtag.", + "required": true, + "type": "string" + } + ], + "x-ms-visibility": "important" + } + }, + "/tag/trending": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get trending hashtags", + "description": "Retrieve a list of trending hashtags.", + "operationId": "HashtagsTrendingGet", + "parameters": [], + "x-ms-visibility": "important" + } + }, + "/tag/top": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get top hashtags", + "description": "Retrieve a list of top hashtags.", + "operationId": "HashtagsTopGet", + "parameters": [] + } + }, + "/tag/count": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The cotton.", + "title": "Count" + } + } + } + } + }, + "summary": "Get post count", + "description": "Retrieve the count of how many posts are present on Instagram. Please note this is not realtime.", + "operationId": "PostCountGet", + "parameters": [ + { + "name": "tag", + "in": "query", + "x-ms-summary": "Tag", + "description": "The tag.", + "required": true, + "type": "string" + } + ] + } + }, + "/tag/generate": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Generate image hashtags", + "description": "Retrieve a list of hashtags for an image.", + "operationId": "ImageHashtagsPost", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "image": { + "type": "string", + "description": "The image as a base64 string.", + "title": "Image" + } + }, + "required": [ + "image" + ] + } + } + ], + "x-ms-visibility": "important" + } + }, + "/categories": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "The identifier.", + "title": "ID" + } + } + }, + "title": "Categories" + } + } + } + } + }, + "summary": "Get categories", + "description": "Retrieve a list of categories.", + "operationId": "CategoriesGet", + "parameters": [] + } + }, + "/categories/{id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "category": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "The identifier.", + "title": "ID" + } + }, + "title": "Category" + } + } + } + } + }, + "summary": "Get a category", + "description": "Retrieve a specific category.", + "operationId": "CategoryGet", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "The identifier.", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "CategoriesGet", + "value-path": "id", + "value-collection": "categories", + "value-title": "name" + } + } + ] + } + }, + "/categories/{id}/tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get category tags", + "description": "Retrieve a list of tags from a specific category.", + "operationId": "CategoryTagsGet", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "The identifier.", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "CategoriesGet", + "value-path": "id", + "value-collection": "categories", + "value-title": "name" + } + } + ] + } + }, + "/trending/countries": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "countries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The countries.", + "title": "Countries" + } + } + } + } + }, + "summary": "Get countries", + "description": "Retrieve a list of countries currently supported.", + "operationId": "CountriesGet", + "parameters": [] + } + }, + "/trending/{countryName}/tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get trending tags in a country", + "description": "Retrieve a list of trending tags in a country.", + "operationId": "CountryTagsGet", + "parameters": [ + { + "name": "countryName", + "in": "path", + "x-ms-summary": "Country Name", + "x-ms-url-encoding": "single", + "description": "The country name.", + "required": true, + "type": "string" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "X-RapidAPI-Key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://mukeshsolanki.gitbook.io/hashtag-api/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://rapidapi.com/privacy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Lifestyle and Entertainment" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Hashtag API/apiProperties.json b/independent-publisher-connectors/Hashtag API/apiProperties.json new file mode 100644 index 000000000..2ff0879c0 --- /dev/null +++ b/independent-publisher-connectors/Hashtag API/apiProperties.json @@ -0,0 +1,35 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "Add host", + "parameters": { + "x-ms-apimTemplateParameter.name": "X-RapidAPI-Host", + "x-ms-apimTemplateParameter.value": "hashtag5.p.rapidapi.com", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Troy Taylor", + "stackOwner": "Mukesh Solanki" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Hashtag API/readme.md b/independent-publisher-connectors/Hashtag API/readme.md new file mode 100644 index 000000000..a09f86a19 --- /dev/null +++ b/independent-publisher-connectors/Hashtag API/readme.md @@ -0,0 +1,35 @@ +# Hashtag API +The Hashtag Generator service allows you to generate relevant hashtags for your content based on a given keyword or image. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +You will need to sign up for an account with [RapidAPI](https://rapidapi.com/auth/sign-up) to use this service. + +## Obtaining Credentials +Once logged in to your account, you can view your API key in the App section under Configuration Settings. + +## Supported Operations +### Get similar hashtags +Retrieve a list of all similar hashtags. +### Get trending hashtags +Retrieve a list of trending hashtags. +### Get top hashtags +Retrieve a list of top hashtags. +### Get post count +Retrieve the count of how many posts are present on Instagram. Please note this is not realtime. +### Generate image hashtags +Retrieve a list of hashtags for an image. +### Get categories +Retrieve a list of categories. +### Get a category +Retrieve a specific category. +### Get category tags +Retrieve a list of tags from a specific category. +### Get countries +Retrieve a list of countries currently supported. +### Get trending tags in a country +Retrieve a list of trending tags in a country. + +## Known Issues and Limitations +There are no known issues at this time.