zernio-sdk 0.0.801 → 0.0.803
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/docs/AccountWithFollowerStats.md +1 -1
- data/docs/CreatePostRequest.md +2 -2
- data/docs/Post.md +2 -2
- data/docs/SocialAccount.md +1 -1
- data/docs/UpdatePostRequest.md +2 -2
- data/lib/zernio-sdk/models/account_with_follower_stats.rb +1 -1
- data/lib/zernio-sdk/models/create_post403_response.rb +2 -2
- data/lib/zernio-sdk/models/create_post_request.rb +2 -0
- data/lib/zernio-sdk/models/post.rb +2 -1
- data/lib/zernio-sdk/models/social_account.rb +1 -1
- data/lib/zernio-sdk/models/update_post_request.rb +2 -0
- data/lib/zernio-sdk/version.rb +1 -1
- data/openapi.yaml +19 -7
- data/spec/models/create_post403_response_spec.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7319f7914b71ce9396dbb032b737547adae046e05e81915ef6f3a984bf303197
|
|
4
|
+
data.tar.gz: e0f6d2116ece4e970c6532617c4c4db0a7a56e1fac98b23f9eb14e925801b1c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dc7503a454f09a838ee9c6843116fca90b44bdede5265def03dae1ee1be30c985f9421f2bcd8e1ce4a4bbac1236537f74a73355e45ae2cb8cfddf6821a40b852
|
|
7
|
+
data.tar.gz: 21a8011f608f07f9408e02b4ed05944ee84eea7d7ce351df2bad684d0bd0b4993f5f2bd9ad71d0acffdbb4b4d28297ed58fd25b00ac6077ed7b176dd6ce729b4
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
| **followers_count** | **Float** | Follower count (only included if user has analytics add-on) | [optional] |
|
|
17
17
|
| **followers_last_updated** | **Time** | Last time follower count was updated (only included if user has analytics add-on) | [optional] |
|
|
18
18
|
| **parent_account_id** | **String** | Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts. | [optional] |
|
|
19
|
-
| **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first).
|
|
19
|
+
| **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts. | [optional] |
|
|
20
20
|
| **metadata** | **Object** | Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName. | [optional] |
|
|
21
21
|
| **current_followers** | **Float** | Current follower count | [optional] |
|
|
22
22
|
| **last_updated** | **Time** | | [optional] |
|
data/docs/CreatePostRequest.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **title** | **String** |
|
|
7
|
+
| **title** | **String** | Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted). | [optional] |
|
|
8
8
|
| **content** | **String** | Post caption/text. Optional when media is attached, all platforms have customContent, every platform entry is an X Article (platformSpecificData.article), or every platform entry is a LinkedIn text-free reshare (platformSpecificData.reshareUrl with no text). Required for other text-only posts. | [optional] |
|
|
9
9
|
| **media_items** | [**Array<MediaItem>**](MediaItem.md) | | [optional] |
|
|
10
10
|
| **platforms** | [**Array<CreatePostRequestPlatformsInner>**](CreatePostRequestPlatformsInner.md) | Target platforms and accounts for this post. Required for non-draft posts (returns 400 if empty). Drafts can omit platforms. | [optional] |
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
| **is_draft** | **Boolean** | When true, saves the post as a draft. When none of scheduledFor, publishNow, or queuedFromProfile are provided, the post defaults to draft automatically. | [optional][default to false] |
|
|
14
14
|
| **timezone** | **String** | | [optional][default to 'UTC'] |
|
|
15
15
|
| **tags** | **Array<String>** | Tags/keywords. YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates auto-removed. | [optional] |
|
|
16
|
-
| **hashtags** | **Array<String>** |
|
|
16
|
+
| **hashtags** | **Array<String>** | Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead. | [optional] |
|
|
17
17
|
| **mentions** | **Array<String>** | Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field. | [optional] |
|
|
18
18
|
| **crossposting_enabled** | **Boolean** | | [optional][default to true] |
|
|
19
19
|
| **metadata** | **Hash<String, Object>** | | [optional] |
|
data/docs/Post.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **_id** | **String** | | [optional] |
|
|
8
8
|
| **user_id** | [**PostUserId**](PostUserId.md) | | [optional] |
|
|
9
|
-
| **title** | **String** | YouTube
|
|
9
|
+
| **title** | **String** | Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted). | [optional] |
|
|
10
10
|
| **content** | **String** | | [optional] |
|
|
11
11
|
| **media_items** | [**Array<MediaItem>**](MediaItem.md) | | [optional] |
|
|
12
12
|
| **platforms** | [**Array<PlatformTarget>**](PlatformTarget.md) | | [optional] |
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
| **timezone** | **String** | | [optional] |
|
|
15
15
|
| **status** | **String** | | [optional] |
|
|
16
16
|
| **tags** | **Array<String>** | YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates removed. | [optional] |
|
|
17
|
-
| **hashtags** | **Array<String>** |
|
|
17
|
+
| **hashtags** | **Array<String>** | Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead. | [optional] |
|
|
18
18
|
| **mentions** | **Array<String>** | Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field. | [optional] |
|
|
19
19
|
| **visibility** | **String** | | [optional] |
|
|
20
20
|
| **metadata** | **Hash<String, Object>** | | [optional] |
|
data/docs/SocialAccount.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
| **followers_count** | **Float** | Follower count (only included if user has analytics add-on) | [optional] |
|
|
17
17
|
| **followers_last_updated** | **Time** | Last time follower count was updated (only included if user has analytics add-on) | [optional] |
|
|
18
18
|
| **parent_account_id** | **String** | Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts. | [optional] |
|
|
19
|
-
| **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first).
|
|
19
|
+
| **enabled** | **Boolean** | Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts. | [optional] |
|
|
20
20
|
| **metadata** | **Object** | Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName. | [optional] |
|
|
21
21
|
|
|
22
22
|
## Example
|
data/docs/UpdatePostRequest.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **title** | **String** |
|
|
7
|
+
| **title** | **String** | Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted). | [optional] |
|
|
8
8
|
| **content** | **String** | | [optional] |
|
|
9
9
|
| **media_items** | [**Array<MediaItem>**](MediaItem.md) | | [optional] |
|
|
10
10
|
| **platforms** | [**Array<UpdatePostRequestPlatformsInner>**](UpdatePostRequestPlatformsInner.md) | Target platforms and accounts for this post. Each item must include platform and accountId. | [optional] |
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
| **timezone** | **String** | | [optional] |
|
|
15
15
|
| **visibility** | **String** | | [optional] |
|
|
16
16
|
| **tags** | **Array<String>** | | [optional] |
|
|
17
|
-
| **hashtags** | **Array<String>** |
|
|
17
|
+
| **hashtags** | **Array<String>** | Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead. | [optional] |
|
|
18
18
|
| **mentions** | **Array<String>** | | [optional] |
|
|
19
19
|
| **crossposting_enabled** | **Boolean** | | [optional] |
|
|
20
20
|
| **metadata** | **Hash<String, Object>** | | [optional] |
|
|
@@ -45,7 +45,7 @@ module Zernio
|
|
|
45
45
|
# Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts.
|
|
46
46
|
attr_accessor :parent_account_id
|
|
47
47
|
|
|
48
|
-
# Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first).
|
|
48
|
+
# Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts.
|
|
49
49
|
attr_accessor :enabled
|
|
50
50
|
|
|
51
51
|
# Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName.
|
|
@@ -111,7 +111,7 @@ module Zernio
|
|
|
111
111
|
# @return true if the model is valid
|
|
112
112
|
def valid?
|
|
113
113
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
114
|
-
code_validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "PROFILE_OVER_LIMIT"])
|
|
114
|
+
code_validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "ACCOUNT_NOT_ENABLED_FOR_POSTING", "PROFILE_OVER_LIMIT"])
|
|
115
115
|
return false unless code_validator.valid?(@code)
|
|
116
116
|
true
|
|
117
117
|
end
|
|
@@ -119,7 +119,7 @@ module Zernio
|
|
|
119
119
|
# Custom attribute writer method checking allowed values (enum).
|
|
120
120
|
# @param [Object] code Object to be assigned
|
|
121
121
|
def code=(code)
|
|
122
|
-
validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "PROFILE_OVER_LIMIT"])
|
|
122
|
+
validator = EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "ACCOUNT_NOT_ENABLED_FOR_POSTING", "PROFILE_OVER_LIMIT"])
|
|
123
123
|
unless validator.valid?(code)
|
|
124
124
|
fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
|
|
125
125
|
end
|
|
@@ -15,6 +15,7 @@ require 'time'
|
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
17
|
class CreatePostRequest < ApiModelBase
|
|
18
|
+
# Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted).
|
|
18
19
|
attr_accessor :title
|
|
19
20
|
|
|
20
21
|
# Post caption/text. Optional when media is attached, all platforms have customContent, every platform entry is an X Article (platformSpecificData.article), or every platform entry is a LinkedIn text-free reshare (platformSpecificData.reshareUrl with no text). Required for other text-only posts.
|
|
@@ -37,6 +38,7 @@ module Zernio
|
|
|
37
38
|
# Tags/keywords. YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates auto-removed.
|
|
38
39
|
attr_accessor :tags
|
|
39
40
|
|
|
41
|
+
# Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead.
|
|
40
42
|
attr_accessor :hashtags
|
|
41
43
|
|
|
42
44
|
# Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field.
|
|
@@ -19,7 +19,7 @@ module Zernio
|
|
|
19
19
|
|
|
20
20
|
attr_accessor :user_id
|
|
21
21
|
|
|
22
|
-
# YouTube
|
|
22
|
+
# Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted).
|
|
23
23
|
attr_accessor :title
|
|
24
24
|
|
|
25
25
|
attr_accessor :content
|
|
@@ -37,6 +37,7 @@ module Zernio
|
|
|
37
37
|
# YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates removed.
|
|
38
38
|
attr_accessor :tags
|
|
39
39
|
|
|
40
|
+
# Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead.
|
|
40
41
|
attr_accessor :hashtags
|
|
41
42
|
|
|
42
43
|
# Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field.
|
|
@@ -45,7 +45,7 @@ module Zernio
|
|
|
45
45
|
# Reference to the parent posting SocialAccount. Set for ads accounts that share or derive from a posting account's OAuth token. null for standalone ads (Google Ads) and all posting accounts.
|
|
46
46
|
attr_accessor :parent_account_id
|
|
47
47
|
|
|
48
|
-
# Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first).
|
|
48
|
+
# Whether the user explicitly activated this account. false means the account was created as a side effect (e.g., posting account auto-created when user connected ads first). Such accounts are hidden from this list, cannot be posted to (`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts.
|
|
49
49
|
attr_accessor :enabled
|
|
50
50
|
|
|
51
51
|
# Platform-specific metadata. Fields vary by platform. For WhatsApp accounts, includes: - qualityRating: Phone number quality rating from Meta (GREEN, YELLOW, RED, or UNKNOWN) - nameStatus: Display name review status (APPROVED, PENDING_REVIEW, DECLINED, or NONE). A declined or pending display name does not by itself block sending; sendability is reported separately via health_status (can_send_message). - messagingLimitTier: Maximum unique business-initiated conversations per 24h rolling window (TIER_250, TIER_1K, TIER_10K, TIER_100K, or TIER_UNLIMITED). Scales automatically as quality rating improves. - verifiedName: Meta-verified business display name - displayPhoneNumber: Formatted phone number (e.g., \"+1 555-123-4567\") - wabaId: WhatsApp Business Account ID - phoneNumberId: Meta phone number ID For LinkedIn accounts, profileData carries the profile details refreshed on each daily snapshot: - profileData.bio: The member's headline for personal accounts, or the organization description for organization accounts. null when the member has not set one. - profileData.extraData.vanityName: The member's profile slug, i.e. the /in/{vanityName} segment of profileUrl. Personal accounts only; an organization's own slug is in metadata.organizationInfo.vanityName.
|
|
@@ -15,6 +15,7 @@ require 'time'
|
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
17
|
class UpdatePostRequest < ApiModelBase
|
|
18
|
+
# Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted).
|
|
18
19
|
attr_accessor :title
|
|
19
20
|
|
|
20
21
|
attr_accessor :content
|
|
@@ -37,6 +38,7 @@ module Zernio
|
|
|
37
38
|
|
|
38
39
|
attr_accessor :tags
|
|
39
40
|
|
|
41
|
+
# Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead.
|
|
40
42
|
attr_accessor :hashtags
|
|
41
43
|
|
|
42
44
|
attr_accessor :mentions
|
data/lib/zernio-sdk/version.rb
CHANGED
data/openapi.yaml
CHANGED
|
@@ -5030,8 +5030,7 @@ components:
|
|
|
5030
5030
|
- $ref: '#/components/schemas/User'
|
|
5031
5031
|
title:
|
|
5032
5032
|
type: string
|
|
5033
|
-
description:
|
|
5034
|
-
YouTube: title must be ≤ 100 characters.
|
|
5033
|
+
description: "Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted)."
|
|
5035
5034
|
content: { type: string }
|
|
5036
5035
|
mediaItems:
|
|
5037
5036
|
type: array
|
|
@@ -5048,6 +5047,7 @@ components:
|
|
|
5048
5047
|
items: { type: string }
|
|
5049
5048
|
hashtags:
|
|
5050
5049
|
type: array
|
|
5050
|
+
description: "Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead."
|
|
5051
5051
|
items: { type: string }
|
|
5052
5052
|
mentions:
|
|
5053
5053
|
type: array
|
|
@@ -6771,7 +6771,8 @@ components:
|
|
|
6771
6771
|
description: |
|
|
6772
6772
|
Whether the user explicitly activated this account. false means the account was
|
|
6773
6773
|
created as a side effect (e.g., posting account auto-created when user connected
|
|
6774
|
-
ads first).
|
|
6774
|
+
ads first). Such accounts are hidden from this list, cannot be posted to
|
|
6775
|
+
(`ACCOUNT_NOT_ENABLED_FOR_POSTING`), and are not billed as connected accounts.
|
|
6775
6776
|
metadata:
|
|
6776
6777
|
type: object
|
|
6777
6778
|
description: |
|
|
@@ -14458,7 +14459,9 @@ paths:
|
|
|
14458
14459
|
schema:
|
|
14459
14460
|
type: object
|
|
14460
14461
|
properties:
|
|
14461
|
-
title:
|
|
14462
|
+
title:
|
|
14463
|
+
type: string
|
|
14464
|
+
description: "Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted)."
|
|
14462
14465
|
content:
|
|
14463
14466
|
type: string
|
|
14464
14467
|
description: 'Post caption/text. Optional when media is attached, all platforms have customContent, every platform entry is an X Article (platformSpecificData.article), or every platform entry is a LinkedIn text-free reshare (platformSpecificData.reshareUrl with no text). Required for other text-only posts.'
|
|
@@ -14514,6 +14517,7 @@ paths:
|
|
|
14514
14517
|
items: { type: string }
|
|
14515
14518
|
hashtags:
|
|
14516
14519
|
type: array
|
|
14520
|
+
description: "Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead."
|
|
14517
14521
|
items: { type: string }
|
|
14518
14522
|
mentions:
|
|
14519
14523
|
type: array
|
|
@@ -14867,6 +14871,7 @@ paths:
|
|
|
14867
14871
|
description: |
|
|
14868
14872
|
Forbidden. Distinguish by the `code` field:
|
|
14869
14873
|
- `ACCOUNT_DISCONNECTED` — a target account exists but its platform connection is no longer active (token expired or revoked, or the account was disconnected). Reconnect the account, then refresh account IDs from `GET /v1/accounts` (accounts report their connection state via `isActive`). The disconnect itself is also emitted as the `account.disconnected` webhook event.
|
|
14874
|
+
- `ACCOUNT_NOT_ENABLED_FOR_POSTING` — a target account was connected for ads only (`enabled: false`) and cannot be posted to. Connect it as a posting account (it then counts as a connected account), then refresh account IDs from `GET /v1/accounts`.
|
|
14870
14875
|
- `PROFILE_OVER_LIMIT` — a target account belongs to a profile beyond the plan's profile limit.
|
|
14871
14876
|
- No `code` — a target `accountId` does not belong to the authenticated user (or is outside the API key's profile scope).
|
|
14872
14877
|
content:
|
|
@@ -14875,7 +14880,7 @@ paths:
|
|
|
14875
14880
|
type: object
|
|
14876
14881
|
properties:
|
|
14877
14882
|
error: { type: string, example: 'Account 6a0f6d2e520992756d96bb6c (facebook "My Page") is disconnected and cannot be posted to. Facebook tokens expired. Please reconnect your Facebook account. After reconnecting, refresh your account IDs from GET /v1/accounts.' }
|
|
14878
|
-
code: { type: string, enum: [ACCOUNT_DISCONNECTED, PROFILE_OVER_LIMIT], description: Stable machine-readable cause. Absent for ownership failures. }
|
|
14883
|
+
code: { type: string, enum: [ACCOUNT_DISCONNECTED, ACCOUNT_NOT_ENABLED_FOR_POSTING, PROFILE_OVER_LIMIT], description: Stable machine-readable cause. Absent for ownership failures. }
|
|
14879
14884
|
'409':
|
|
14880
14885
|
description: |
|
|
14881
14886
|
Duplicate content detected. Returned when the requested post matches an existing one on `(platform, accountId, content-hash)` within the last 24 hours, AND the request was NOT an `x-request-id` retry of an in-flight call. Distinct from same-`x-request-id` retries (which return HTTP 200 with the original post — see operation description for the idempotency contract).
|
|
@@ -15155,7 +15160,9 @@ paths:
|
|
|
15155
15160
|
schema:
|
|
15156
15161
|
type: object
|
|
15157
15162
|
properties:
|
|
15158
|
-
title:
|
|
15163
|
+
title:
|
|
15164
|
+
type: string
|
|
15165
|
+
description: "Stored on the post for reference/display only. This field is NOT used as the video title when publishing. To set a YouTube video title, use platformSpecificData.title on the youtube platform target (falls back to the first line of content when omitted)."
|
|
15159
15166
|
content: { type: string }
|
|
15160
15167
|
mediaItems:
|
|
15161
15168
|
type: array
|
|
@@ -15195,6 +15202,7 @@ paths:
|
|
|
15195
15202
|
items: { type: string }
|
|
15196
15203
|
hashtags:
|
|
15197
15204
|
type: array
|
|
15205
|
+
description: "Stored for reference only. Hashtags are NOT automatically appended to the caption when publishing. Include hashtags directly in the content field (platforms like Instagram only support hashtags as caption text). For YouTube keywords, use the tags field instead."
|
|
15198
15206
|
items: { type: string }
|
|
15199
15207
|
mentions:
|
|
15200
15208
|
type: array
|
|
@@ -15422,7 +15430,11 @@ paths:
|
|
|
15422
15430
|
properties:
|
|
15423
15431
|
error: { type: string }
|
|
15424
15432
|
'403':
|
|
15425
|
-
description:
|
|
15433
|
+
description: |
|
|
15434
|
+
Forbidden. Distinguish by the `code` field:
|
|
15435
|
+
- `ACCOUNT_NOT_ENABLED_FOR_POSTING`: a target account was connected for ads only (`enabled: false`) and cannot be posted to. Connect it as a posting account, then retry.
|
|
15436
|
+
- `PROFILE_OVER_LIMIT`: a target account belongs to a profile beyond the plan's profile limit.
|
|
15437
|
+
- `insufficient_permissions`: the post is not accessible to the caller.
|
|
15426
15438
|
content:
|
|
15427
15439
|
application/json:
|
|
15428
15440
|
schema: { $ref: '#/components/schemas/ErrorResponse' }
|
|
@@ -36,7 +36,7 @@ describe Zernio::CreatePost403Response do
|
|
|
36
36
|
describe 'test attribute "code"' do
|
|
37
37
|
it 'should work' do
|
|
38
38
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
-
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "PROFILE_OVER_LIMIT"])
|
|
39
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["ACCOUNT_DISCONNECTED", "ACCOUNT_NOT_ENABLED_FOR_POSTING", "PROFILE_OVER_LIMIT"])
|
|
40
40
|
# validator.allowable_values.each do |value|
|
|
41
41
|
# expect { instance.code = value }.not_to raise_error
|
|
42
42
|
# end
|