Letterdrop (Independent Publisher) (#2955)

* Revert "Merge branch 'microsoft:dev' into dev"

This reverts commit 096a7c3199, reversing
changes made to cb0948670f.

* Revert "Merge branch 'microsoft:dev' into dev"

This reverts commit cb0948670f, reversing
changes made to dc26e8a026.

* Revert "Revert "Merge branch 'microsoft:dev' into dev""

This reverts commit 01764d0a6d.

* Revert "Revert "Merge branch 'microsoft:dev' into dev""

This reverts commit a3f086ef0f.

* Add files via upload

* Revert "Add files via upload"

This reverts commit eeff7b7a02.

* 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 1d85506958.

* Update readme.md

* Revert "Update readme.md"

This reverts commit b94447a142.

* Add files via upload
This commit is contained in:
Troy Taylor 2023-10-25 07:56:32 -04:00 коммит произвёл GitHub
Родитель 3305031493
Коммит 64e479f44e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 960 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,906 @@
{
"swagger": "2.0",
"info": {
"title": "Letterdrop",
"description": "Letterdrop is the only SEO tool that optimizes for people-first content. Beyond SEO, it's actually a complete content marketing suite designed to help you go from idea to publish as quickly as possible while following best practices. This includes project management, social distribution, and repurposing content.",
"version": "1.0",
"contact": {
"name": "Troy Taylor",
"url": "https://www.hitachisolutions.com",
"email": "ttaylor@hitachisolutions.com"
}
},
"host": "app.letterdrop.com",
"basePath": "/api/v1/",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/subscriber/add": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether a success.",
"title": "Success"
},
"email": {
"type": "string",
"description": "The email address.",
"title": "Email"
},
"type": {
"type": "string",
"description": "The type.",
"title": "Type"
},
"publication": {
"type": "string",
"description": "The publication.",
"title": "Publication"
},
"message": {
"type": "string",
"description": "The message.",
"title": "Message"
}
}
}
}
},
"summary": "Add subscriber",
"description": "Add a subscriber to your publication.",
"operationId": "SubscriberPost",
"parameters": [
{
"name": "body",
"in": "body",
"required": false,
"schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The email address.",
"title": "Email"
},
"welcomeEmail": {
"type": "boolean",
"description": "Whether to send a welcome email.",
"title": "Welcome Email"
},
"additionalData": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name.",
"title": "Name"
},
"location": {
"type": "string",
"description": "The location.",
"title": "Location"
},
"title": {
"type": "string",
"description": "The title.",
"title": "Title"
},
"company": {
"type": "string",
"description": "The company.",
"title": "Company"
},
"companySize": {
"type": "integer",
"format": "int32",
"description": "The company size.",
"title": "Company Size"
},
"industry": {
"type": "string",
"description": "The industry.",
"title": "Industry"
},
"twitter": {
"type": "string",
"description": "The Twitter handle.",
"title": "Twitter"
},
"twitterFollowers": {
"type": "integer",
"format": "int32",
"description": "The number of Twitter followers.",
"title": "Twitter Followers"
},
"linkedin": {
"type": "string",
"description": "The LinkedIn account.",
"title": "LinkedIn"
},
"github": {
"type": "string",
"description": "The GitHub account.",
"title": "GitHub"
},
"facebook": {
"type": "string",
"description": "The Facebook account.",
"title": "Facebook"
}
},
"title": "Additional Data"
}
},
"required": [
"email"
]
}
}
],
"x-ms-visibility": "important"
}
},
"/subscriber/remove": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether a success.",
"title": "Success"
},
"email": {
"type": "string",
"description": "The email address.",
"title": "Email"
},
"publication": {
"type": "string",
"description": "The publication.",
"title": "Publication"
},
"message": {
"type": "string",
"description": "The message.",
"title": "Message"
}
}
}
}
},
"summary": "Remove subscriber",
"description": "Remove a subscriber from your publication.",
"operationId": "SubscriberRemovePost",
"parameters": [
{
"name": "email",
"in": "query",
"x-ms-summary": "Email",
"description": "The email address.",
"required": true,
"type": "string"
}
]
}
},
"/posts": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether a success.",
"title": "Success"
},
"meta": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"format": "int32",
"description": "The page number.",
"title": "Page"
},
"hasNextPage": {
"type": "boolean",
"description": "Whether has next page.",
"title": "Has Next Page"
},
"totalPosts": {
"type": "integer",
"format": "int32",
"description": "The total number of posts.",
"title": "Total Posts"
}
},
"title": "Meta"
},
"posts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier.",
"title": "ID"
},
"title": {
"type": "string",
"description": "The title.",
"title": "Title"
},
"subtitle": {
"type": "string",
"description": "The subtitle.",
"title": "Subtitle"
},
"text": {
"type": "string",
"description": "The text.",
"title": "Text"
},
"textPreview": {
"type": "string",
"description": "The text preview.",
"title": "Text Preview"
},
"body": {
"type": "string",
"description": "The body.",
"title": "Body"
},
"slug": {
"type": "string",
"description": "The slug.",
"title": "Slug"
},
"url": {
"type": "string",
"description": "The URL address.",
"title": "URL"
},
"publishedOn": {
"type": "string",
"description": "When published on.",
"title": "Published On"
},
"coverImage": {
"type": "string",
"description": "The cover image.",
"title": "Cover Image"
},
"thumbnail": {
"type": "string",
"description": "The thumbnail.",
"title": "Thumbnail"
},
"metaTitle": {
"type": "string",
"description": "The meta title.",
"title": "Meta Title"
},
"metaDescription": {
"type": "string",
"description": "The meta description.",
"title": "Meta Description"
},
"status": {
"type": "string",
"description": "The status.",
"title": "Status"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags.",
"title": "Tags"
},
"updated": {
"type": "string",
"description": "When updated.",
"title": "Updated"
},
"publication": {
"type": "string",
"description": "The publication.",
"title": "Publication"
},
"readTime": {
"type": "integer",
"format": "int32",
"description": "The read time.",
"title": "Read Time"
},
"wordCount": {
"type": "integer",
"format": "int32",
"description": "The word count.",
"title": "Word Count"
},
"featured": {
"type": "boolean",
"description": "Whether featured.",
"title": "Featured"
},
"markdown": {
"type": "string",
"description": "The markdown.",
"title": "Markdown"
}
}
},
"title": "Posts"
}
}
}
}
},
"summary": "Get posts",
"description": "Retrieve a summary of all your posts to be displayed on your home page.",
"operationId": "PostsGetPost",
"parameters": [
{
"name": "body",
"in": "body",
"required": false,
"schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query.",
"title": "Query"
},
"offset": {
"type": "integer",
"format": "int32",
"description": "The offset.",
"title": "Offset",
"default": 0
},
"limit": {
"type": "integer",
"format": "int32",
"description": "The page limit.",
"title": "Limit"
}
},
"required": [
"query"
]
}
}
]
}
},
"/post/get/{id}": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier.",
"title": "ID"
},
"title": {
"type": "string",
"description": "The title.",
"title": "Title"
},
"subtitle": {
"type": "string",
"description": "The subtitle.",
"title": "Subtitle"
},
"text": {
"type": "string",
"description": "The text.",
"title": "Text"
},
"textPreview": {
"type": "string",
"description": "The text preview.",
"title": "Text Preview"
},
"body": {
"type": "string",
"description": "The body.",
"title": "Body"
},
"slug": {
"type": "string",
"description": "The slug.",
"title": "Slug"
},
"url": {
"type": "string",
"description": "The URL address.",
"title": "URL"
},
"publishedOn": {
"type": "string",
"description": "When published on.",
"title": "Published On"
},
"coverImage": {
"type": "string",
"description": "The cover image.",
"title": "Cover Image"
},
"thumbnail": {
"type": "string",
"description": "The thumbnail.",
"title": "Thumbnail"
},
"metaTitle": {
"type": "string",
"description": "The meta title.",
"title": "Meta Title"
},
"metaDescription": {
"type": "string",
"description": "The meta description.",
"title": "Meta Description"
},
"status": {
"type": "string",
"description": "The status.",
"title": "Status"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags.",
"title": "Tags"
},
"updated": {
"type": "string",
"description": "When updated.",
"title": "Updated"
},
"publication": {
"type": "string",
"description": "The publication.",
"title": "Publication"
},
"readTime": {
"type": "integer",
"format": "int32",
"description": "The read time.",
"title": "Read Time"
},
"wordCount": {
"type": "integer",
"format": "int32",
"description": "The word count.",
"title": "Word Count"
},
"featured": {
"type": "boolean",
"description": "Whether featured.",
"title": "Featured"
},
"markdown": {
"type": "string",
"description": "The markdown.",
"title": "Markdown"
}
}
}
}
},
"summary": "Get post",
"description": "Retrieve a single post.",
"operationId": "PostGetPost",
"parameters": [
{
"name": "id",
"in": "path",
"x-ms-summary": "ID",
"x-ms-url-encoding": "single",
"description": "The identifier.",
"required": true,
"type": "string"
}
]
}
},
"/post/draft": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether a success.",
"title": "Success"
},
"draftLink": {
"type": "string",
"description": "The draft link.",
"title": "Draft Link"
}
}
}
}
},
"summary": "Draft post",
"description": "Drafts a post.",
"operationId": "PostDraftPost",
"parameters": [
{
"name": "body",
"in": "body",
"required": false,
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title.",
"title": "Title"
},
"subtitle": {
"type": "string",
"description": "The subtitle.",
"title": "Subtitle"
},
"html": {
"type": "string",
"description": "The HTML.",
"title": "HTML"
}
},
"required": [
"title",
"html"
]
}
}
],
"x-ms-visibility": "important"
}
},
"/project/get/{id}": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title.",
"title": "Title"
},
"description": {
"type": "string",
"description": "The description.",
"title": "Description"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "The labels.",
"title": "Labels"
},
"keyword": {
"type": "string",
"description": "The keyword.",
"title": "Keyword"
},
"status": {
"type": "string",
"description": "The status.",
"title": "Status"
},
"suggestedBy": {
"type": "string",
"description": "The suggested by.",
"title": "Suggested By"
},
"suggestedOn": {
"type": "string",
"description": "When suggested on.",
"title": "Suggested On"
},
"assignedBy": {
"type": "string",
"description": "The assigned by.",
"title": "Assigned By"
},
"assignedTo": {
"type": "string",
"description": "The assigned to.",
"title": "Assigned To"
},
"contributors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The contributors.",
"title": "Contributors"
},
"contentMapDeadline": {
"type": "string",
"description": "The content map deadline.",
"title": "Content Map Deadline"
},
"approvers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The approvers.",
"title": "Approvers"
},
"reviewDeadline": {
"type": "string",
"description": "The review deadline.",
"title": "Review Deadline"
},
"approvedBy": {
"type": "string",
"description": "The approved by.",
"title": "Approved By"
},
"publishDate": {
"type": "string",
"description": "The publish date.",
"title": "Publish Date"
}
}
}
}
},
"summary": "Get project",
"description": "Retrieve the details for a project.",
"operationId": "ProjectGetPost",
"parameters": [
{
"name": "id",
"in": "path",
"x-ms-summary": "ID",
"x-ms-url-encoding": "single",
"description": "The identifier.",
"required": true,
"type": "string"
}
]
}
},
"/idea/new": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether a success.",
"title": "Success"
},
"title": {
"type": "string",
"description": "The title.",
"title": "Title"
},
"description": {
"type": "string",
"description": "The description.",
"title": "Description"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "labels"
},
"keyword": {
"type": "string",
"description": "The keyword.",
"title": "Keyword"
},
"suggestedBy": {
"type": "string",
"description": "The suggested by.",
"title": "Suggested By"
},
"message": {
"type": "string",
"description": "The message.",
"title": "Message"
}
}
}
}
},
"x-ms-visibility": "important",
"summary": "Create idea",
"description": "Creates a new idea.",
"operationId": "IdeaCreatePost",
"parameters": [
{
"name": "body",
"in": "body",
"required": false,
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title.",
"title": "Title"
},
"description": {
"type": "string",
"description": "The description.",
"title": "Description"
},
"suggestedBy": {
"type": "string",
"description": "The suggested by.",
"title": "Suggested By"
},
"keyword": {
"type": "string",
"description": "The keyword.",
"title": "Keyword"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "The labels.",
"title": "Labels"
}
},
"required": [
"title",
"suggestedBy"
]
}
}
]
}
},
"/idea/assign": {
"post": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether a success.",
"title": "Success"
},
"message": {
"type": "string",
"description": "The message.",
"title": "Message"
}
}
}
}
},
"summary": "Assign idea",
"description": "Create a project from an idea.",
"operationId": "IdeaAssignPost",
"parameters": [
{
"name": "body",
"in": "body",
"required": false,
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The identifier.",
"title": "ID"
},
"assignTo": {
"type": "string",
"description": "The assign to.",
"title": "Assign To"
},
"publishOn": {
"type": "string",
"description": "The publish on.",
"title": "Publish On"
},
"approvers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The approvers.",
"title": "Approvers"
}
},
"required": [
"id",
"publishOn",
"assignTo"
]
}
}
]
}
}
},
"definitions": {},
"parameters": {},
"responses": {},
"securityDefinitions": {
"API Key": {
"type": "apiKey",
"in": "header",
"name": "api-key"
}
},
"security": [
{
"API Key": []
}
],
"tags": [],
"x-ms-connector-metadata": [
{
"propertyName": "Website",
"propertyValue": "https://letterdrop.com/"
},
{
"propertyName": "Privacy policy",
"propertyValue": "https://letterdrop.com/privacy"
},
{
"propertyName": "Categories",
"propertyValue": "Marketing;AI"
}
]
}

Просмотреть файл

@ -0,0 +1,23 @@
{
"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": [],
"publisher": "Troy Taylor",
"stackOwner": "Letterdrop"
}
}

Просмотреть файл

@ -0,0 +1,31 @@
# Letterdrop
Letterdrop is the only SEO tool that optimizes for people-first content. Beyond SEO, it's actually a complete content marketing suite designed to help you go from idea to publish as quickly as possible while following best practices. This includes project management, social distribution, and repurposing content.
## Publisher: Troy Taylor, Hitachi Solutions
## Prerequisites
You must create an account with [Letterdrop](https://app.letterdrop.com/login).
## Obtaining Credentials
Once logged in to your workspace, you can find your API key on the Integrations page under the Settings menu.
## Supported Operations
### Add subscriber
Add a subscriber to your publication.
### Remove subscriber
Remove a subscriber from your publication.
### Get posts
Retrieve a summary of all your posts to be displayed on your home page.
### Get post
Retrieve a single post.
### Draft post
Drafts a post.
### Get project
Retrieve the details for a project.
### Create idea
Creates a new idea.
### Assign idea
Create a project from an idea.
## Known Issues and Limitations
There are no known issues at this time.