late-sdk 0.0.833 → 0.0.835
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/README.md +1 -1
- data/docs/CommentsApi.md +1 -1
- data/docs/ErrorResponse.md +1 -1
- data/docs/GetAccountHealth200Response.md +2 -0
- data/docs/GetAllAccountsHealth200ResponseAccountsInner.md +3 -1
- data/docs/GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction.md +24 -0
- data/lib/zernio-sdk/api/comments_api.rb +2 -2
- data/lib/zernio-sdk/models/error_response.rb +1 -1
- data/lib/zernio-sdk/models/get_account_health200_response.rb +10 -1
- data/lib/zernio-sdk/models/get_all_accounts_health200_response_accounts_inner.rb +13 -4
- data/lib/zernio-sdk/models/{send_private_reply_to_comment400_response.rb → get_all_accounts_health200_response_accounts_inner_messaging_restriction.rb} +35 -50
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +1 -1
- data/openapi.yaml +57 -13
- data/spec/api/comments_api_spec.rb +1 -1
- data/spec/models/get_account_health200_response_spec.rb +6 -0
- data/spec/models/{send_private_reply_to_comment400_response_spec.rb → get_all_accounts_health200_response_accounts_inner_messaging_restriction_spec.rb} +20 -12
- data/spec/models/get_all_accounts_health200_response_accounts_inner_spec.rb +6 -0
- data/zernio-sdk-0.0.835.gem +0 -0
- metadata +1756 -1756
- data/docs/SendPrivateReplyToComment400Response.md +0 -20
- data/zernio-sdk-0.0.833.gem +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fb59657c3f14b333a6c07ee99f8ac1336ed74d85413ac135a83ff80ed287bb3a
|
|
4
|
+
data.tar.gz: 6c86bde148061742173f97d113341cdafd65364d2ac6f382b73eaa566e97497a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 780b7fc05b906ede71458307f281e9b2dd675cbddd8f97e53c122529b3182204ebe8dbb967b0a54dc1a8b025c2eb96c8a337d6a075549c295915cb972870d660
|
|
7
|
+
data.tar.gz: c1e2ec4f0dfb92deb5b1675f288d7e96f6c366bdf87be6aef2efca7bb229f3ca86ccf6ff42eb0bb84f66675422f57c9e9a394bf9bfd94765b59233f4e96da828
|
data/README.md
CHANGED
|
@@ -1191,6 +1191,7 @@ Class | Method | HTTP request | Description
|
|
|
1191
1191
|
- [Zernio::GetAdsTimeline202Response](docs/GetAdsTimeline202Response.md)
|
|
1192
1192
|
- [Zernio::GetAllAccountsHealth200Response](docs/GetAllAccountsHealth200Response.md)
|
|
1193
1193
|
- [Zernio::GetAllAccountsHealth200ResponseAccountsInner](docs/GetAllAccountsHealth200ResponseAccountsInner.md)
|
|
1194
|
+
- [Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction](docs/GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction.md)
|
|
1194
1195
|
- [Zernio::GetAllAccountsHealth200ResponseSummary](docs/GetAllAccountsHealth200ResponseSummary.md)
|
|
1195
1196
|
- [Zernio::GetAnalytics200Response](docs/GetAnalytics200Response.md)
|
|
1196
1197
|
- [Zernio::GetAnalytics400Response](docs/GetAnalytics400Response.md)
|
|
@@ -1999,7 +2000,6 @@ Class | Method | HTTP request | Description
|
|
|
1999
2000
|
- [Zernio::SendInboxMessageRequestTemplateElementsInner](docs/SendInboxMessageRequestTemplateElementsInner.md)
|
|
2000
2001
|
- [Zernio::SendInboxMessageRequestTemplateElementsInnerButtonsInner](docs/SendInboxMessageRequestTemplateElementsInnerButtonsInner.md)
|
|
2001
2002
|
- [Zernio::SendPrivateReplyToComment200Response](docs/SendPrivateReplyToComment200Response.md)
|
|
2002
|
-
- [Zernio::SendPrivateReplyToComment400Response](docs/SendPrivateReplyToComment400Response.md)
|
|
2003
2003
|
- [Zernio::SendPrivateReplyToCommentRequest](docs/SendPrivateReplyToCommentRequest.md)
|
|
2004
2004
|
- [Zernio::SendPrivateReplyToCommentRequestButtonsInner](docs/SendPrivateReplyToCommentRequestButtonsInner.md)
|
|
2005
2005
|
- [Zernio::SendPrivateReplyToCommentRequestButtonsInnerOneOf](docs/SendPrivateReplyToCommentRequestButtonsInnerOneOf.md)
|
data/docs/CommentsApi.md
CHANGED
|
@@ -631,7 +631,7 @@ end
|
|
|
631
631
|
|
|
632
632
|
Send private reply
|
|
633
633
|
|
|
634
|
-
Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
|
|
634
|
+
Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive. When the comment's single private reply is spent (by this call or an earlier one) the 400 carries `details.privateReplyConsumed: true`; never retry it.
|
|
635
635
|
|
|
636
636
|
### Examples
|
|
637
637
|
|
data/docs/ErrorResponse.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| **param** | **String** | The request field that caused the error, when applicable. | [optional] |
|
|
11
11
|
| **platform** | **String** | Upstream platform (e.g. meta, google, tiktok) — present when type is platform_error. | [optional] |
|
|
12
12
|
| **platform_error** | **Hash<String, Object>** | Raw error payload from the upstream platform, passed through verbatim so integrators can read provider-specific codes. For Meta this includes error_subcode, error_user_title, and error_user_msg. | [optional] |
|
|
13
|
-
| **details** | **Hash<String, Object>** | Additional structured context (e.g. field-level validation errors). | [optional] |
|
|
13
|
+
| **details** | **Hash<String, Object>** | Additional structured context (e.g. field-level validation errors), for example `privateReplyConsumed` on the private-reply endpoint's 400 when the comment's single reply is already spent. | [optional] |
|
|
14
14
|
|
|
15
15
|
## Example
|
|
16
16
|
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
| **permissions** | [**GetAccountHealth200ResponsePermissions**](GetAccountHealth200ResponsePermissions.md) | | [optional] |
|
|
14
14
|
| **issues** | **Array<String>** | List of issues found | [optional] |
|
|
15
15
|
| **recommendations** | **Array<String>** | Actionable recommendations to fix issues | [optional] |
|
|
16
|
+
| **messaging_restriction** | [**GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction**](GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction.md) | | [optional] |
|
|
16
17
|
| **platform_connection** | [**GetAccountHealth200ResponsePlatformConnection**](GetAccountHealth200ResponsePlatformConnection.md) | | [optional] |
|
|
17
18
|
|
|
18
19
|
## Example
|
|
@@ -30,6 +31,7 @@ instance = Zernio::GetAccountHealth200Response.new(
|
|
|
30
31
|
permissions: null,
|
|
31
32
|
issues: null,
|
|
32
33
|
recommendations: null,
|
|
34
|
+
messaging_restriction: null,
|
|
33
35
|
platform_connection: null
|
|
34
36
|
)
|
|
35
37
|
```
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
| **token_expires_at** | **Time** | | [optional] |
|
|
17
17
|
| **needs_reconnect** | **Boolean** | | [optional] |
|
|
18
18
|
| **issues** | **Array<String>** | | [optional] |
|
|
19
|
+
| **messaging_restriction** | [**GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction**](GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction.md) | | [optional] |
|
|
19
20
|
|
|
20
21
|
## Example
|
|
21
22
|
|
|
@@ -34,7 +35,8 @@ instance = Zernio::GetAllAccountsHealth200ResponseAccountsInner.new(
|
|
|
34
35
|
token_valid: null,
|
|
35
36
|
token_expires_at: null,
|
|
36
37
|
needs_reconnect: null,
|
|
37
|
-
issues: null
|
|
38
|
+
issues: null,
|
|
39
|
+
messaging_restriction: null
|
|
38
40
|
)
|
|
39
41
|
```
|
|
40
42
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **subcode** | **Integer** | | [optional] |
|
|
8
|
+
| **message** | **String** | | [optional] |
|
|
9
|
+
| **first_seen_at** | **Time** | | [optional] |
|
|
10
|
+
| **last_seen_at** | **Time** | | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'zernio-sdk'
|
|
16
|
+
|
|
17
|
+
instance = Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction.new(
|
|
18
|
+
subcode: null,
|
|
19
|
+
message: null,
|
|
20
|
+
first_seen_at: null,
|
|
21
|
+
last_seen_at: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -690,7 +690,7 @@ module Zernio
|
|
|
690
690
|
end
|
|
691
691
|
|
|
692
692
|
# Send private reply
|
|
693
|
-
# Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
|
|
693
|
+
# Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive. When the comment's single private reply is spent (by this call or an earlier one) the 400 carries `details.privateReplyConsumed: true`; never retry it.
|
|
694
694
|
# @param post_id [String] The media/post ID (Instagram media ID or Facebook post ID)
|
|
695
695
|
# @param comment_id [String] The comment ID to send a private reply to
|
|
696
696
|
# @param send_private_reply_to_comment_request [SendPrivateReplyToCommentRequest]
|
|
@@ -702,7 +702,7 @@ module Zernio
|
|
|
702
702
|
end
|
|
703
703
|
|
|
704
704
|
# Send private reply
|
|
705
|
-
# Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
|
|
705
|
+
# Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive. When the comment's single private reply is spent (by this call or an earlier one) the 400 carries `details.privateReplyConsumed: true`; never retry it.
|
|
706
706
|
# @param post_id [String] The media/post ID (Instagram media ID or Facebook post ID)
|
|
707
707
|
# @param comment_id [String] The comment ID to send a private reply to
|
|
708
708
|
# @param send_private_reply_to_comment_request [SendPrivateReplyToCommentRequest]
|
|
@@ -34,7 +34,7 @@ module Zernio
|
|
|
34
34
|
# Raw error payload from the upstream platform, passed through verbatim so integrators can read provider-specific codes. For Meta this includes error_subcode, error_user_title, and error_user_msg.
|
|
35
35
|
attr_accessor :platform_error
|
|
36
36
|
|
|
37
|
-
# Additional structured context (e.g. field-level validation errors).
|
|
37
|
+
# Additional structured context (e.g. field-level validation errors), for example `privateReplyConsumed` on the private-reply endpoint's 400 when the comment's single reply is already spent.
|
|
38
38
|
attr_accessor :details
|
|
39
39
|
|
|
40
40
|
class EnumAttributeValidator
|
|
@@ -36,6 +36,8 @@ module Zernio
|
|
|
36
36
|
# Actionable recommendations to fix issues
|
|
37
37
|
attr_accessor :recommendations
|
|
38
38
|
|
|
39
|
+
attr_accessor :messaging_restriction
|
|
40
|
+
|
|
39
41
|
attr_accessor :platform_connection
|
|
40
42
|
|
|
41
43
|
class EnumAttributeValidator
|
|
@@ -72,6 +74,7 @@ module Zernio
|
|
|
72
74
|
:'permissions' => :'permissions',
|
|
73
75
|
:'issues' => :'issues',
|
|
74
76
|
:'recommendations' => :'recommendations',
|
|
77
|
+
:'messaging_restriction' => :'messagingRestriction',
|
|
75
78
|
:'platform_connection' => :'platformConnection'
|
|
76
79
|
}
|
|
77
80
|
end
|
|
@@ -98,6 +101,7 @@ module Zernio
|
|
|
98
101
|
:'permissions' => :'GetAccountHealth200ResponsePermissions',
|
|
99
102
|
:'issues' => :'Array<String>',
|
|
100
103
|
:'recommendations' => :'Array<String>',
|
|
104
|
+
:'messaging_restriction' => :'GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction',
|
|
101
105
|
:'platform_connection' => :'GetAccountHealth200ResponsePlatformConnection'
|
|
102
106
|
}
|
|
103
107
|
end
|
|
@@ -164,6 +168,10 @@ module Zernio
|
|
|
164
168
|
end
|
|
165
169
|
end
|
|
166
170
|
|
|
171
|
+
if attributes.key?(:'messaging_restriction')
|
|
172
|
+
self.messaging_restriction = attributes[:'messaging_restriction']
|
|
173
|
+
end
|
|
174
|
+
|
|
167
175
|
if attributes.key?(:'platform_connection')
|
|
168
176
|
self.platform_connection = attributes[:'platform_connection']
|
|
169
177
|
end
|
|
@@ -210,6 +218,7 @@ module Zernio
|
|
|
210
218
|
permissions == o.permissions &&
|
|
211
219
|
issues == o.issues &&
|
|
212
220
|
recommendations == o.recommendations &&
|
|
221
|
+
messaging_restriction == o.messaging_restriction &&
|
|
213
222
|
platform_connection == o.platform_connection
|
|
214
223
|
end
|
|
215
224
|
|
|
@@ -222,7 +231,7 @@ module Zernio
|
|
|
222
231
|
# Calculates hash code according to all attributes.
|
|
223
232
|
# @return [Integer] Hash code
|
|
224
233
|
def hash
|
|
225
|
-
[account_id, platform, username, display_name, status, token_status, permissions, issues, recommendations, platform_connection].hash
|
|
234
|
+
[account_id, platform, username, display_name, status, token_status, permissions, issues, recommendations, messaging_restriction, platform_connection].hash
|
|
226
235
|
end
|
|
227
236
|
|
|
228
237
|
# Builds the object from hash
|
|
@@ -39,6 +39,8 @@ module Zernio
|
|
|
39
39
|
|
|
40
40
|
attr_accessor :issues
|
|
41
41
|
|
|
42
|
+
attr_accessor :messaging_restriction
|
|
43
|
+
|
|
42
44
|
class EnumAttributeValidator
|
|
43
45
|
attr_reader :datatype
|
|
44
46
|
attr_reader :allowable_values
|
|
@@ -75,7 +77,8 @@ module Zernio
|
|
|
75
77
|
:'token_valid' => :'tokenValid',
|
|
76
78
|
:'token_expires_at' => :'tokenExpiresAt',
|
|
77
79
|
:'needs_reconnect' => :'needsReconnect',
|
|
78
|
-
:'issues' => :'issues'
|
|
80
|
+
:'issues' => :'issues',
|
|
81
|
+
:'messaging_restriction' => :'messagingRestriction'
|
|
79
82
|
}
|
|
80
83
|
end
|
|
81
84
|
|
|
@@ -103,7 +106,8 @@ module Zernio
|
|
|
103
106
|
:'token_valid' => :'Boolean',
|
|
104
107
|
:'token_expires_at' => :'Time',
|
|
105
108
|
:'needs_reconnect' => :'Boolean',
|
|
106
|
-
:'issues' => :'Array<String>'
|
|
109
|
+
:'issues' => :'Array<String>',
|
|
110
|
+
:'messaging_restriction' => :'GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction'
|
|
107
111
|
}
|
|
108
112
|
end
|
|
109
113
|
|
|
@@ -178,6 +182,10 @@ module Zernio
|
|
|
178
182
|
self.issues = value
|
|
179
183
|
end
|
|
180
184
|
end
|
|
185
|
+
|
|
186
|
+
if attributes.key?(:'messaging_restriction')
|
|
187
|
+
self.messaging_restriction = attributes[:'messaging_restriction']
|
|
188
|
+
end
|
|
181
189
|
end
|
|
182
190
|
|
|
183
191
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -223,7 +231,8 @@ module Zernio
|
|
|
223
231
|
token_valid == o.token_valid &&
|
|
224
232
|
token_expires_at == o.token_expires_at &&
|
|
225
233
|
needs_reconnect == o.needs_reconnect &&
|
|
226
|
-
issues == o.issues
|
|
234
|
+
issues == o.issues &&
|
|
235
|
+
messaging_restriction == o.messaging_restriction
|
|
227
236
|
end
|
|
228
237
|
|
|
229
238
|
# @see the `==` method
|
|
@@ -235,7 +244,7 @@ module Zernio
|
|
|
235
244
|
# Calculates hash code according to all attributes.
|
|
236
245
|
# @return [Integer] Hash code
|
|
237
246
|
def hash
|
|
238
|
-
[account_id, platform, username, display_name, profile_id, status, can_post, can_fetch_analytics, token_valid, token_expires_at, needs_reconnect, issues].hash
|
|
247
|
+
[account_id, platform, username, display_name, profile_id, status, can_post, can_fetch_analytics, token_valid, token_expires_at, needs_reconnect, issues, messaging_restriction].hash
|
|
239
248
|
end
|
|
240
249
|
|
|
241
250
|
# Builds the object from hash
|
|
@@ -14,38 +14,23 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
attr_accessor :code
|
|
21
|
-
|
|
22
|
-
class EnumAttributeValidator
|
|
23
|
-
attr_reader :datatype
|
|
24
|
-
attr_reader :allowable_values
|
|
25
|
-
|
|
26
|
-
def initialize(datatype, allowable_values)
|
|
27
|
-
@allowable_values = allowable_values.map do |value|
|
|
28
|
-
case datatype.to_s
|
|
29
|
-
when /Integer/i
|
|
30
|
-
value.to_i
|
|
31
|
-
when /Float/i
|
|
32
|
-
value.to_f
|
|
33
|
-
else
|
|
34
|
-
value
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
17
|
+
# Observed from Meta's own error subcodes on our own sends (2534122, 1893063, 2534029), not a live probe. Set on the first refused send and cleared when a later send succeeds, so it lags reality by one send in each direction.
|
|
18
|
+
class GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction < ApiModelBase
|
|
19
|
+
attr_accessor :subcode
|
|
38
20
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
21
|
+
attr_accessor :message
|
|
22
|
+
|
|
23
|
+
attr_accessor :first_seen_at
|
|
24
|
+
|
|
25
|
+
attr_accessor :last_seen_at
|
|
43
26
|
|
|
44
27
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
45
28
|
def self.attribute_map
|
|
46
29
|
{
|
|
47
|
-
:'
|
|
48
|
-
:'
|
|
30
|
+
:'subcode' => :'subcode',
|
|
31
|
+
:'message' => :'message',
|
|
32
|
+
:'first_seen_at' => :'firstSeenAt',
|
|
33
|
+
:'last_seen_at' => :'lastSeenAt'
|
|
49
34
|
}
|
|
50
35
|
end
|
|
51
36
|
|
|
@@ -62,8 +47,10 @@ module Zernio
|
|
|
62
47
|
# Attribute type mapping.
|
|
63
48
|
def self.openapi_types
|
|
64
49
|
{
|
|
65
|
-
:'
|
|
66
|
-
:'
|
|
50
|
+
:'subcode' => :'Integer',
|
|
51
|
+
:'message' => :'String',
|
|
52
|
+
:'first_seen_at' => :'Time',
|
|
53
|
+
:'last_seen_at' => :'Time'
|
|
67
54
|
}
|
|
68
55
|
end
|
|
69
56
|
|
|
@@ -77,24 +64,32 @@ module Zernio
|
|
|
77
64
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
78
65
|
def initialize(attributes = {})
|
|
79
66
|
if (!attributes.is_a?(Hash))
|
|
80
|
-
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::
|
|
67
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction` initialize method"
|
|
81
68
|
end
|
|
82
69
|
|
|
83
70
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
84
71
|
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
85
72
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
86
73
|
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
87
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::
|
|
74
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
88
75
|
end
|
|
89
76
|
h[k.to_sym] = v
|
|
90
77
|
}
|
|
91
78
|
|
|
92
|
-
if attributes.key?(:'
|
|
93
|
-
self.
|
|
79
|
+
if attributes.key?(:'subcode')
|
|
80
|
+
self.subcode = attributes[:'subcode']
|
|
94
81
|
end
|
|
95
82
|
|
|
96
|
-
if attributes.key?(:'
|
|
97
|
-
self.
|
|
83
|
+
if attributes.key?(:'message')
|
|
84
|
+
self.message = attributes[:'message']
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
if attributes.key?(:'first_seen_at')
|
|
88
|
+
self.first_seen_at = attributes[:'first_seen_at']
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
if attributes.key?(:'last_seen_at')
|
|
92
|
+
self.last_seen_at = attributes[:'last_seen_at']
|
|
98
93
|
end
|
|
99
94
|
end
|
|
100
95
|
|
|
@@ -110,28 +105,18 @@ module Zernio
|
|
|
110
105
|
# @return true if the model is valid
|
|
111
106
|
def valid?
|
|
112
107
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
113
|
-
code_validator = EnumAttributeValidator.new('String', ["PLATFORM_LIMITATION"])
|
|
114
|
-
return false unless code_validator.valid?(@code)
|
|
115
108
|
true
|
|
116
109
|
end
|
|
117
110
|
|
|
118
|
-
# Custom attribute writer method checking allowed values (enum).
|
|
119
|
-
# @param [Object] code Object to be assigned
|
|
120
|
-
def code=(code)
|
|
121
|
-
validator = EnumAttributeValidator.new('String', ["PLATFORM_LIMITATION"])
|
|
122
|
-
unless validator.valid?(code)
|
|
123
|
-
fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
|
|
124
|
-
end
|
|
125
|
-
@code = code
|
|
126
|
-
end
|
|
127
|
-
|
|
128
111
|
# Checks equality by comparing each attribute.
|
|
129
112
|
# @param [Object] Object to be compared
|
|
130
113
|
def ==(o)
|
|
131
114
|
return true if self.equal?(o)
|
|
132
115
|
self.class == o.class &&
|
|
133
|
-
|
|
134
|
-
|
|
116
|
+
subcode == o.subcode &&
|
|
117
|
+
message == o.message &&
|
|
118
|
+
first_seen_at == o.first_seen_at &&
|
|
119
|
+
last_seen_at == o.last_seen_at
|
|
135
120
|
end
|
|
136
121
|
|
|
137
122
|
# @see the `==` method
|
|
@@ -143,7 +128,7 @@ module Zernio
|
|
|
143
128
|
# Calculates hash code according to all attributes.
|
|
144
129
|
# @return [Integer] Hash code
|
|
145
130
|
def hash
|
|
146
|
-
[
|
|
131
|
+
[subcode, message, first_seen_at, last_seen_at].hash
|
|
147
132
|
end
|
|
148
133
|
|
|
149
134
|
# Builds the object from hash
|
data/lib/zernio-sdk/version.rb
CHANGED
data/lib/zernio-sdk.rb
CHANGED
|
@@ -529,6 +529,7 @@ require 'zernio-sdk/models/get_ads_search_terms200_response_paging'
|
|
|
529
529
|
require 'zernio-sdk/models/get_ads_timeline202_response'
|
|
530
530
|
require 'zernio-sdk/models/get_all_accounts_health200_response'
|
|
531
531
|
require 'zernio-sdk/models/get_all_accounts_health200_response_accounts_inner'
|
|
532
|
+
require 'zernio-sdk/models/get_all_accounts_health200_response_accounts_inner_messaging_restriction'
|
|
532
533
|
require 'zernio-sdk/models/get_all_accounts_health200_response_summary'
|
|
533
534
|
require 'zernio-sdk/models/get_analytics200_response'
|
|
534
535
|
require 'zernio-sdk/models/get_analytics400_response'
|
|
@@ -1337,7 +1338,6 @@ require 'zernio-sdk/models/send_inbox_message_request_template'
|
|
|
1337
1338
|
require 'zernio-sdk/models/send_inbox_message_request_template_elements_inner'
|
|
1338
1339
|
require 'zernio-sdk/models/send_inbox_message_request_template_elements_inner_buttons_inner'
|
|
1339
1340
|
require 'zernio-sdk/models/send_private_reply_to_comment200_response'
|
|
1340
|
-
require 'zernio-sdk/models/send_private_reply_to_comment400_response'
|
|
1341
1341
|
require 'zernio-sdk/models/send_private_reply_to_comment_request'
|
|
1342
1342
|
require 'zernio-sdk/models/send_private_reply_to_comment_request_buttons_inner'
|
|
1343
1343
|
require 'zernio-sdk/models/send_private_reply_to_comment_request_buttons_inner_one_of'
|
data/openapi.yaml
CHANGED
|
@@ -1544,7 +1544,10 @@ components:
|
|
|
1544
1544
|
details:
|
|
1545
1545
|
type: object
|
|
1546
1546
|
additionalProperties: true
|
|
1547
|
-
description:
|
|
1547
|
+
description: >-
|
|
1548
|
+
Additional structured context (e.g. field-level validation errors), for example
|
|
1549
|
+
`privateReplyConsumed` on the private-reply endpoint's 400 when the comment's
|
|
1550
|
+
single reply is already spent.
|
|
1548
1551
|
CommentAutomationAudience:
|
|
1549
1552
|
type: object
|
|
1550
1553
|
description: |
|
|
@@ -16986,6 +16989,14 @@ paths:
|
|
|
16986
16989
|
tokenExpiresAt: { type: string, format: date-time }
|
|
16987
16990
|
needsReconnect: { type: boolean }
|
|
16988
16991
|
issues: { type: array, items: { type: string } }
|
|
16992
|
+
messagingRestriction:
|
|
16993
|
+
type: [object, "null"]
|
|
16994
|
+
description: 'Observed from Meta''s own error subcodes on our own sends (2534122, 1893063, 2534029), not a live probe. Set on the first refused send and cleared when a later send succeeds, so it lags reality by one send in each direction.'
|
|
16995
|
+
properties:
|
|
16996
|
+
subcode: { type: integer }
|
|
16997
|
+
message: { type: string }
|
|
16998
|
+
firstSeenAt: { type: string, format: date-time }
|
|
16999
|
+
lastSeenAt: { type: string, format: date-time }
|
|
16989
17000
|
example:
|
|
16990
17001
|
summary:
|
|
16991
17002
|
total: 5
|
|
@@ -17147,6 +17158,14 @@ paths:
|
|
|
17147
17158
|
type: array
|
|
17148
17159
|
items: { type: string }
|
|
17149
17160
|
description: Actionable recommendations to fix issues
|
|
17161
|
+
messagingRestriction:
|
|
17162
|
+
type: [object, "null"]
|
|
17163
|
+
description: 'Observed from Meta''s own error subcodes on our own sends (2534122, 1893063, 2534029), not a live probe. Set on the first refused send and cleared when a later send succeeds, so it lags reality by one send in each direction.'
|
|
17164
|
+
properties:
|
|
17165
|
+
subcode: { type: integer }
|
|
17166
|
+
message: { type: string }
|
|
17167
|
+
firstSeenAt: { type: string, format: date-time }
|
|
17168
|
+
lastSeenAt: { type: string, format: date-time }
|
|
17150
17169
|
platformConnection:
|
|
17151
17170
|
type: object
|
|
17152
17171
|
description: 'WhatsApp accounts only. Live probe of the Meta link behind the channel, performed at request time (the same read as GET /v1/whatsapp/number-info).'
|
|
@@ -29708,7 +29727,9 @@ paths:
|
|
|
29708
29727
|
cards and attachments to commenters who do not follow the account (Meta code 2, subcode
|
|
29709
29728
|
1545133, returned here as a non-retryable 400 that says so), and the failed call still
|
|
29710
29729
|
consumes the comment's single private reply. To reach non-followers send plain text and
|
|
29711
|
-
add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
|
|
29730
|
+
add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive. When
|
|
29731
|
+
the comment's single private reply is spent (by this call or an earlier one) the 400
|
|
29732
|
+
carries `details.privateReplyConsumed: true`; never retry it.
|
|
29712
29733
|
tags: [Comments]
|
|
29713
29734
|
security: [{ bearerAuth: [] }]
|
|
29714
29735
|
parameters:
|
|
@@ -29842,31 +29863,54 @@ paths:
|
|
|
29842
29863
|
content:
|
|
29843
29864
|
application/json:
|
|
29844
29865
|
schema:
|
|
29845
|
-
|
|
29846
|
-
properties:
|
|
29847
|
-
error:
|
|
29848
|
-
type: string
|
|
29849
|
-
code:
|
|
29850
|
-
type: string
|
|
29851
|
-
enum: [PLATFORM_LIMITATION]
|
|
29866
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
29852
29867
|
examples:
|
|
29853
29868
|
platformNotSupported:
|
|
29854
29869
|
summary: Platform not supported
|
|
29855
29870
|
value:
|
|
29856
29871
|
error: "Private replies to comments are only supported on Instagram and Facebook."
|
|
29857
|
-
|
|
29872
|
+
type: "invalid_request_error"
|
|
29873
|
+
code: "invalid_field_value"
|
|
29874
|
+
param: "accountId"
|
|
29875
|
+
followGated:
|
|
29876
|
+
summary: "Media refused, commenter does not follow the account (reply consumed)"
|
|
29877
|
+
value:
|
|
29878
|
+
error: "Instagram refused this private reply because it carries a card, buttons or an attachment and the commenter does not follow this account. Meta delivers only plain text to non-followers. This attempt consumed the comment's single private reply, so do not retry it; send a text-only private reply to reach non-followers."
|
|
29879
|
+
type: "platform_error"
|
|
29880
|
+
code: "platform_api_error"
|
|
29881
|
+
platform: "instagram"
|
|
29882
|
+
platformError:
|
|
29883
|
+
code: 2
|
|
29884
|
+
error_subcode: 1545133
|
|
29885
|
+
is_transient: false
|
|
29886
|
+
message: "Service temporarily unavailable"
|
|
29887
|
+
error_user_title: "Your message can't be delivered"
|
|
29888
|
+
error_user_msg: "You can't send media to Jejum de Daniel unless they follow you."
|
|
29889
|
+
details:
|
|
29890
|
+
privateReplyConsumed: true
|
|
29858
29891
|
alreadyReplied:
|
|
29859
|
-
summary: Already sent a private reply
|
|
29892
|
+
summary: "Already sent a private reply (reply consumed, Meta subcode 2534023)"
|
|
29860
29893
|
value:
|
|
29861
|
-
error: "A private reply has already been sent to this comment
|
|
29894
|
+
error: "A private reply has already been sent to this comment. Instagram only allows one private reply per comment."
|
|
29895
|
+
type: "platform_error"
|
|
29896
|
+
code: "platform_api_error"
|
|
29897
|
+
platform: "instagram"
|
|
29898
|
+
details:
|
|
29899
|
+
privateReplyConsumed: true
|
|
29862
29900
|
commentTooOld:
|
|
29863
29901
|
summary: Comment older than 7 days
|
|
29864
29902
|
value:
|
|
29865
|
-
error: "The comment is older than 7 days.
|
|
29903
|
+
error: "The comment is older than 7 days. Instagram only allows private replies within 7 days of the comment being posted."
|
|
29904
|
+
type: "platform_error"
|
|
29905
|
+
code: "platform_api_error"
|
|
29906
|
+
platform: "instagram"
|
|
29866
29907
|
missingMessage:
|
|
29867
29908
|
summary: Missing message
|
|
29868
29909
|
value:
|
|
29869
29910
|
error: "message is required and must be a non-empty string"
|
|
29911
|
+
type: "invalid_request_error"
|
|
29912
|
+
code: "missing_required_field"
|
|
29913
|
+
param: "message"
|
|
29870
29914
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
29871
29915
|
'403':
|
|
29872
29916
|
description: Inbox addon required
|
|
@@ -154,7 +154,7 @@ describe 'CommentsApi' do
|
|
|
154
154
|
|
|
155
155
|
# unit tests for send_private_reply_to_comment
|
|
156
156
|
# Send private reply
|
|
157
|
-
# Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive.
|
|
157
|
+
# Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive. When the comment's single private reply is spent (by this call or an earlier one) the 400 carries `details.privateReplyConsumed: true`; never retry it.
|
|
158
158
|
# @param post_id The media/post ID (Instagram media ID or Facebook post ID)
|
|
159
159
|
# @param comment_id The comment ID to send a private reply to
|
|
160
160
|
# @param send_private_reply_to_comment_request
|
|
@@ -85,6 +85,12 @@ describe Zernio::GetAccountHealth200Response do
|
|
|
85
85
|
end
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
+
describe 'test attribute "messaging_restriction"' do
|
|
89
|
+
it 'should work' do
|
|
90
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
88
94
|
describe 'test attribute "platform_connection"' do
|
|
89
95
|
it 'should work' do
|
|
90
96
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -14,32 +14,40 @@ require 'spec_helper'
|
|
|
14
14
|
require 'json'
|
|
15
15
|
require 'date'
|
|
16
16
|
|
|
17
|
-
# Unit tests for Zernio::
|
|
17
|
+
# Unit tests for Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction
|
|
18
18
|
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
19
|
# Please update as you see appropriate
|
|
20
|
-
describe Zernio::
|
|
21
|
-
#let(:instance) { Zernio::
|
|
20
|
+
describe Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction do
|
|
21
|
+
#let(:instance) { Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction.new }
|
|
22
22
|
|
|
23
|
-
describe 'test an instance of
|
|
24
|
-
it 'should create an instance of
|
|
23
|
+
describe 'test an instance of GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction' do
|
|
24
|
+
it 'should create an instance of GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction' do
|
|
25
25
|
# uncomment below to test the instance creation
|
|
26
|
-
#expect(instance).to be_instance_of(Zernio::
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::GetAllAccountsHealth200ResponseAccountsInnerMessagingRestriction)
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
describe 'test attribute "
|
|
30
|
+
describe 'test attribute "subcode"' do
|
|
31
31
|
it 'should work' do
|
|
32
32
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
describe 'test attribute "
|
|
36
|
+
describe 'test attribute "message"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe 'test attribute "first_seen_at"' do
|
|
43
|
+
it 'should work' do
|
|
44
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe 'test attribute "last_seen_at"' do
|
|
37
49
|
it 'should work' do
|
|
38
50
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
-
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["PLATFORM_LIMITATION"])
|
|
40
|
-
# validator.allowable_values.each do |value|
|
|
41
|
-
# expect { instance.code = value }.not_to raise_error
|
|
42
|
-
# end
|
|
43
51
|
end
|
|
44
52
|
end
|
|
45
53
|
|
|
@@ -103,4 +103,10 @@ describe Zernio::GetAllAccountsHealth200ResponseAccountsInner do
|
|
|
103
103
|
end
|
|
104
104
|
end
|
|
105
105
|
|
|
106
|
+
describe 'test attribute "messaging_restriction"' do
|
|
107
|
+
it 'should work' do
|
|
108
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
106
112
|
end
|
|
Binary file
|