late-sdk 0.0.931 → 0.0.933

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81bb7c26bf2db4113a5a971d34a6b9328fb4e719b3524a1c243e4065c4fe8c7b
4
- data.tar.gz: f6a4ed2d3dabde2d4d7926f0b78b80121b9f5c195beb913143c64c965dabf3f0
3
+ metadata.gz: 577f60080523c601a6cad0ac41d3bc547398ee2ae7b293796635aa3fbb70e48d
4
+ data.tar.gz: 07d828c29fe8d4bc2061eb7c51e3054822fc8cefdbb16bd1d7e567e393e56606
5
5
  SHA512:
6
- metadata.gz: 43edf702d34e1db0dd85c5e1532396ab557cdb061267948db4d7b9559b566cc5f8ce3e79b84573240015cd056981a7307ca613c04890a90acc95b3e51803ec2e
7
- data.tar.gz: a671027d7a8770e94daf2f8a75a0d3c90662af19b9e4d460d17ed97349d4bfc64495e981cfcc9c18314c1d010af9dd10ec64ae61b375dbb64cfc2a9051662503
6
+ metadata.gz: 55905f243f15ac2e7e68f229b5b37f329f36495913cb5bb0ea84780c6ce553db881005273ce28292031f4c81c67fe8e6bc749bdb1c60efc201360e3fd1277f75
7
+ data.tar.gz: c38cb22921b12adae3179f4197f05d8b7e8ac8df9a5757458217d0a629252e9164919033315c668b2f624b3268eaf88fc16812b4f32bd94187c0abf043dc3588
data/README.md CHANGED
@@ -383,6 +383,7 @@ Class | Method | HTTP request | Description
383
383
  *Zernio::ConnectApi* | [**get_facebook_pages**](docs/ConnectApi.md#get_facebook_pages) | **GET** /v1/accounts/{accountId}/facebook-page | List Facebook pages
384
384
  *Zernio::ConnectApi* | [**get_gmb_locations**](docs/ConnectApi.md#get_gmb_locations) | **GET** /v1/accounts/{accountId}/gmb-locations | List Google Business Profile locations
385
385
  *Zernio::ConnectApi* | [**get_linked_in_organizations**](docs/ConnectApi.md#get_linked_in_organizations) | **GET** /v1/accounts/{accountId}/linkedin-organizations | List LinkedIn orgs
386
+ *Zernio::ConnectApi* | [**get_page_webhook_subscription**](docs/ConnectApi.md#get_page_webhook_subscription) | **GET** /v1/accounts/{accountId}/webhook-subscription | Read a Facebook Page's webhook subscription
386
387
  *Zernio::ConnectApi* | [**get_pending_o_auth_data**](docs/ConnectApi.md#get_pending_o_auth_data) | **GET** /v1/connect/pending-data | Get pending OAuth data
387
388
  *Zernio::ConnectApi* | [**get_pinterest_boards**](docs/ConnectApi.md#get_pinterest_boards) | **GET** /v1/accounts/{accountId}/pinterest-boards | List Pinterest boards
388
389
  *Zernio::ConnectApi* | [**get_reddit_flairs**](docs/ConnectApi.md#get_reddit_flairs) | **GET** /v1/accounts/{accountId}/reddit-flairs | List subreddit flairs
@@ -403,6 +404,7 @@ Class | Method | HTTP request | Description
403
404
  *Zernio::ConnectApi* | [**list_slack_channels**](docs/ConnectApi.md#list_slack_channels) | **GET** /v1/connect/slack | List Slack channels for the channel picker
404
405
  *Zernio::ConnectApi* | [**list_snapchat_profiles**](docs/ConnectApi.md#list_snapchat_profiles) | **GET** /v1/connect/snapchat/select-profile | List Snapchat profiles
405
406
  *Zernio::ConnectApi* | [**list_whats_app_phone_numbers**](docs/ConnectApi.md#list_whats_app_phone_numbers) | **GET** /v1/connect/whatsapp/select-phone-number | List numbers for selection
407
+ *Zernio::ConnectApi* | [**resync_page_webhook_subscription**](docs/ConnectApi.md#resync_page_webhook_subscription) | **POST** /v1/accounts/{accountId}/webhook-subscription | Re-subscribe a Facebook Page to Zernio's webhooks
406
408
  *Zernio::ConnectApi* | [**select_facebook_page**](docs/ConnectApi.md#select_facebook_page) | **POST** /v1/connect/facebook/select-page | Select Facebook page
407
409
  *Zernio::ConnectApi* | [**select_google_business_location**](docs/ConnectApi.md#select_google_business_location) | **POST** /v1/connect/googlebusiness/select-location | Select Google Business Profile location
408
410
  *Zernio::ConnectApi* | [**select_instagram_account**](docs/ConnectApi.md#select_instagram_account) | **POST** /v1/connect/instagram/select-account | Select the Page whose Instagram account to connect
@@ -1568,6 +1570,7 @@ Class | Method | HTTP request | Description
1568
1570
  - [Zernio::GetMediaPresignedUrlRequest](docs/GetMediaPresignedUrlRequest.md)
1569
1571
  - [Zernio::GetMessageAttachment200Response](docs/GetMessageAttachment200Response.md)
1570
1572
  - [Zernio::GetMessengerMenu200Response](docs/GetMessengerMenu200Response.md)
1573
+ - [Zernio::GetPageWebhookSubscription200Response](docs/GetPageWebhookSubscription200Response.md)
1571
1574
  - [Zernio::GetPendingOAuthData200Response](docs/GetPendingOAuthData200Response.md)
1572
1575
  - [Zernio::GetPendingOAuthData200ResponseOrganizationsInner](docs/GetPendingOAuthData200ResponseOrganizationsInner.md)
1573
1576
  - [Zernio::GetPhoneNumber200Response](docs/GetPhoneNumber200Response.md)
@@ -2178,6 +2181,7 @@ Class | Method | HTTP request | Description
2178
2181
  - [Zernio::RespondToSmsRegistrationReviewRequest](docs/RespondToSmsRegistrationReviewRequest.md)
2179
2182
  - [Zernio::RestoreWorkflowVersion200Response](docs/RestoreWorkflowVersion200Response.md)
2180
2183
  - [Zernio::RestoreWorkflowVersion200ResponseWorkflow](docs/RestoreWorkflowVersion200ResponseWorkflow.md)
2184
+ - [Zernio::ResyncPageWebhookSubscription200Response](docs/ResyncPageWebhookSubscription200Response.md)
2181
2185
  - [Zernio::RetryPost207Response](docs/RetryPost207Response.md)
2182
2186
  - [Zernio::RetweetPost200Response](docs/RetweetPost200Response.md)
2183
2187
  - [Zernio::RetweetPostRequest](docs/RetweetPostRequest.md)
data/docs/ConnectApi.md CHANGED
@@ -22,6 +22,7 @@ All URIs are relative to *https://zernio.com/api*
22
22
  | [**get_facebook_pages**](ConnectApi.md#get_facebook_pages) | **GET** /v1/accounts/{accountId}/facebook-page | List Facebook pages |
23
23
  | [**get_gmb_locations**](ConnectApi.md#get_gmb_locations) | **GET** /v1/accounts/{accountId}/gmb-locations | List Google Business Profile locations |
24
24
  | [**get_linked_in_organizations**](ConnectApi.md#get_linked_in_organizations) | **GET** /v1/accounts/{accountId}/linkedin-organizations | List LinkedIn orgs |
25
+ | [**get_page_webhook_subscription**](ConnectApi.md#get_page_webhook_subscription) | **GET** /v1/accounts/{accountId}/webhook-subscription | Read a Facebook Page's webhook subscription |
25
26
  | [**get_pending_o_auth_data**](ConnectApi.md#get_pending_o_auth_data) | **GET** /v1/connect/pending-data | Get pending OAuth data |
26
27
  | [**get_pinterest_boards**](ConnectApi.md#get_pinterest_boards) | **GET** /v1/accounts/{accountId}/pinterest-boards | List Pinterest boards |
27
28
  | [**get_reddit_flairs**](ConnectApi.md#get_reddit_flairs) | **GET** /v1/accounts/{accountId}/reddit-flairs | List subreddit flairs |
@@ -42,6 +43,7 @@ All URIs are relative to *https://zernio.com/api*
42
43
  | [**list_slack_channels**](ConnectApi.md#list_slack_channels) | **GET** /v1/connect/slack | List Slack channels for the channel picker |
43
44
  | [**list_snapchat_profiles**](ConnectApi.md#list_snapchat_profiles) | **GET** /v1/connect/snapchat/select-profile | List Snapchat profiles |
44
45
  | [**list_whats_app_phone_numbers**](ConnectApi.md#list_whats_app_phone_numbers) | **GET** /v1/connect/whatsapp/select-phone-number | List numbers for selection |
46
+ | [**resync_page_webhook_subscription**](ConnectApi.md#resync_page_webhook_subscription) | **POST** /v1/accounts/{accountId}/webhook-subscription | Re-subscribe a Facebook Page to Zernio's webhooks |
45
47
  | [**select_facebook_page**](ConnectApi.md#select_facebook_page) | **POST** /v1/connect/facebook/select-page | Select Facebook page |
46
48
  | [**select_google_business_location**](ConnectApi.md#select_google_business_location) | **POST** /v1/connect/googlebusiness/select-location | Select Google Business Profile location |
47
49
  | [**select_instagram_account**](ConnectApi.md#select_instagram_account) | **POST** /v1/connect/instagram/select-account | Select the Page whose Instagram account to connect |
@@ -1362,6 +1364,75 @@ end
1362
1364
  - **Accept**: application/json
1363
1365
 
1364
1366
 
1367
+ ## get_page_webhook_subscription
1368
+
1369
+ > <GetPageWebhookSubscription200Response> get_page_webhook_subscription(account_id)
1370
+
1371
+ Read a Facebook Page's webhook subscription
1372
+
1373
+ Returns the webhook fields Zernio's app is subscribed to on the connected Page, read live from Meta. Use it to confirm `leadgen` is present: a Page missing it keeps delivering every other event while lead ads stop arriving, with nothing to indicate it.
1374
+
1375
+ ### Examples
1376
+
1377
+ ```ruby
1378
+ require 'time'
1379
+ require 'zernio-sdk'
1380
+ # setup authorization
1381
+ Zernio.configure do |config|
1382
+ # Configure Bearer authorization (JWT): bearerAuth
1383
+ config.access_token = 'YOUR_BEARER_TOKEN'
1384
+ end
1385
+
1386
+ api_instance = Zernio::ConnectApi.new
1387
+ account_id = 'account_id_example' # String |
1388
+
1389
+ begin
1390
+ # Read a Facebook Page's webhook subscription
1391
+ result = api_instance.get_page_webhook_subscription(account_id)
1392
+ p result
1393
+ rescue Zernio::ApiError => e
1394
+ puts "Error when calling ConnectApi->get_page_webhook_subscription: #{e}"
1395
+ end
1396
+ ```
1397
+
1398
+ #### Using the get_page_webhook_subscription_with_http_info variant
1399
+
1400
+ This returns an Array which contains the response data, status code and headers.
1401
+
1402
+ > <Array(<GetPageWebhookSubscription200Response>, Integer, Hash)> get_page_webhook_subscription_with_http_info(account_id)
1403
+
1404
+ ```ruby
1405
+ begin
1406
+ # Read a Facebook Page's webhook subscription
1407
+ data, status_code, headers = api_instance.get_page_webhook_subscription_with_http_info(account_id)
1408
+ p status_code # => 2xx
1409
+ p headers # => { ... }
1410
+ p data # => <GetPageWebhookSubscription200Response>
1411
+ rescue Zernio::ApiError => e
1412
+ puts "Error when calling ConnectApi->get_page_webhook_subscription_with_http_info: #{e}"
1413
+ end
1414
+ ```
1415
+
1416
+ ### Parameters
1417
+
1418
+ | Name | Type | Description | Notes |
1419
+ | ---- | ---- | ----------- | ----- |
1420
+ | **account_id** | **String** | | |
1421
+
1422
+ ### Return type
1423
+
1424
+ [**GetPageWebhookSubscription200Response**](GetPageWebhookSubscription200Response.md)
1425
+
1426
+ ### Authorization
1427
+
1428
+ [bearerAuth](../README.md#bearerAuth)
1429
+
1430
+ ### HTTP request headers
1431
+
1432
+ - **Content-Type**: Not defined
1433
+ - **Accept**: application/json
1434
+
1435
+
1365
1436
  ## get_pending_o_auth_data
1366
1437
 
1367
1438
  > <GetPendingOAuthData200Response> get_pending_o_auth_data(token)
@@ -2822,6 +2893,75 @@ end
2822
2893
  - **Accept**: application/json
2823
2894
 
2824
2895
 
2896
+ ## resync_page_webhook_subscription
2897
+
2898
+ > <ResyncPageWebhookSubscription200Response> resync_page_webhook_subscription(account_id)
2899
+
2900
+ Re-subscribe a Facebook Page to Zernio's webhooks
2901
+
2902
+ Re-sends the full field set to Meta and returns the subscription read back afterwards. Meta only honours the field set sent at subscribe time, so a Page connected before a field existed stays without it until this runs. The response reflects what Meta actually granted, not what was requested.
2903
+
2904
+ ### Examples
2905
+
2906
+ ```ruby
2907
+ require 'time'
2908
+ require 'zernio-sdk'
2909
+ # setup authorization
2910
+ Zernio.configure do |config|
2911
+ # Configure Bearer authorization (JWT): bearerAuth
2912
+ config.access_token = 'YOUR_BEARER_TOKEN'
2913
+ end
2914
+
2915
+ api_instance = Zernio::ConnectApi.new
2916
+ account_id = 'account_id_example' # String |
2917
+
2918
+ begin
2919
+ # Re-subscribe a Facebook Page to Zernio's webhooks
2920
+ result = api_instance.resync_page_webhook_subscription(account_id)
2921
+ p result
2922
+ rescue Zernio::ApiError => e
2923
+ puts "Error when calling ConnectApi->resync_page_webhook_subscription: #{e}"
2924
+ end
2925
+ ```
2926
+
2927
+ #### Using the resync_page_webhook_subscription_with_http_info variant
2928
+
2929
+ This returns an Array which contains the response data, status code and headers.
2930
+
2931
+ > <Array(<ResyncPageWebhookSubscription200Response>, Integer, Hash)> resync_page_webhook_subscription_with_http_info(account_id)
2932
+
2933
+ ```ruby
2934
+ begin
2935
+ # Re-subscribe a Facebook Page to Zernio's webhooks
2936
+ data, status_code, headers = api_instance.resync_page_webhook_subscription_with_http_info(account_id)
2937
+ p status_code # => 2xx
2938
+ p headers # => { ... }
2939
+ p data # => <ResyncPageWebhookSubscription200Response>
2940
+ rescue Zernio::ApiError => e
2941
+ puts "Error when calling ConnectApi->resync_page_webhook_subscription_with_http_info: #{e}"
2942
+ end
2943
+ ```
2944
+
2945
+ ### Parameters
2946
+
2947
+ | Name | Type | Description | Notes |
2948
+ | ---- | ---- | ----------- | ----- |
2949
+ | **account_id** | **String** | | |
2950
+
2951
+ ### Return type
2952
+
2953
+ [**ResyncPageWebhookSubscription200Response**](ResyncPageWebhookSubscription200Response.md)
2954
+
2955
+ ### Authorization
2956
+
2957
+ [bearerAuth](../README.md#bearerAuth)
2958
+
2959
+ ### HTTP request headers
2960
+
2961
+ - **Content-Type**: Not defined
2962
+ - **Accept**: application/json
2963
+
2964
+
2825
2965
  ## select_facebook_page
2826
2966
 
2827
2967
  > <SelectFacebookPage200Response> select_facebook_page(select_facebook_page_request)
@@ -0,0 +1,26 @@
1
+ # Zernio::GetPageWebhookSubscription200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **page_id** | **String** | | [optional] |
8
+ | **app_subscribed** | **Boolean** | False when the Page carries no subscription for our app at all. | [optional] |
9
+ | **leadgen** | **Boolean** | Whether lead ads submitted on this Page reach Zernio in real time. | [optional] |
10
+ | **subscribed_fields** | **Array&lt;String&gt;** | | [optional] |
11
+ | **warning** | **String** | Present only when leadgen is missing. | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'zernio-sdk'
17
+
18
+ instance = Zernio::GetPageWebhookSubscription200Response.new(
19
+ page_id: null,
20
+ app_subscribed: null,
21
+ leadgen: null,
22
+ subscribed_fields: null,
23
+ warning: null
24
+ )
25
+ ```
26
+
@@ -18,7 +18,7 @@
18
18
  | **is_trial_reel** | **Boolean** | Present and true only when this Instagram reel was launched as a Trial through Zernio (created with platformSpecificData.trialParams). Use it to segment trial reels in analytics. Note: Instagram&#39;s Graph API exposes no readable trial field, so this reflects creation-time intent only. It indicates the reel STARTED as a trial, not whether or when it graduated. | [optional] |
19
19
  | **trial_graduation_strategy** | **String** | Graduation strategy the trial reel was launched with. Present only when isTrialReel is true. | [optional] |
20
20
  | **error_message** | **String** | Human-readable error message when status is failed. Contains platform-specific error details explaining why the publish failed. | [optional] |
21
- | **error_category** | **String** | Error category for programmatic handling: auth_expired (token expired/revoked), user_content (wrong format/too long), user_abuse (rate limits/spam), account_issue (config problems), platform_rejected (policy violation), platform_error (5xx/maintenance), platform_rate_limit (platform throttling, retried automatically), quota_exhausted (shared daily API quota empty, resumes at the platform&#39;s reset), system_error (Zernio infra), unknown | [optional] |
21
+ | **error_category** | **String** | Error category for programmatic handling: auth_expired (token expired/revoked), user_content (wrong format/too long), user_abuse (rate limits/spam), account_issue (config problems), platform_rejected (policy violation), platform_error (5xx/maintenance), platform_rate_limit (platform throttling, retried automatically), quota_exhausted (a shared quota pool the integration draws on is empty, including our own capacity gate in front of one; not caused by your content or account, and safe to retry once the pool frees up), system_error (Zernio infra), unknown | [optional] |
22
22
  | **error_source** | **String** | Who caused the error: user (fix content/reconnect), platform (outage/API change), system (Zernio issue, rare) | [optional] |
23
23
 
24
24
  ## Example
@@ -0,0 +1,28 @@
1
+ # Zernio::ResyncPageWebhookSubscription200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **resubscribed** | **Boolean** | | [optional] |
8
+ | **page_id** | **String** | | [optional] |
9
+ | **app_subscribed** | **Boolean** | | [optional] |
10
+ | **leadgen** | **Boolean** | | [optional] |
11
+ | **subscribed_fields** | **Array&lt;String&gt;** | | [optional] |
12
+ | **warning** | **String** | | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'zernio-sdk'
18
+
19
+ instance = Zernio::ResyncPageWebhookSubscription200Response.new(
20
+ resubscribed: null,
21
+ page_id: null,
22
+ app_subscribed: null,
23
+ leadgen: null,
24
+ subscribed_fields: null,
25
+ warning: null
26
+ )
27
+ ```
28
+
@@ -1364,6 +1364,69 @@ module Zernio
1364
1364
  return data, status_code, headers
1365
1365
  end
1366
1366
 
1367
+ # Read a Facebook Page's webhook subscription
1368
+ # Returns the webhook fields Zernio's app is subscribed to on the connected Page, read live from Meta. Use it to confirm `leadgen` is present: a Page missing it keeps delivering every other event while lead ads stop arriving, with nothing to indicate it.
1369
+ # @param account_id [String]
1370
+ # @param [Hash] opts the optional parameters
1371
+ # @return [GetPageWebhookSubscription200Response]
1372
+ def get_page_webhook_subscription(account_id, opts = {})
1373
+ data, _status_code, _headers = get_page_webhook_subscription_with_http_info(account_id, opts)
1374
+ data
1375
+ end
1376
+
1377
+ # Read a Facebook Page&#39;s webhook subscription
1378
+ # Returns the webhook fields Zernio&#39;s app is subscribed to on the connected Page, read live from Meta. Use it to confirm &#x60;leadgen&#x60; is present: a Page missing it keeps delivering every other event while lead ads stop arriving, with nothing to indicate it.
1379
+ # @param account_id [String]
1380
+ # @param [Hash] opts the optional parameters
1381
+ # @return [Array<(GetPageWebhookSubscription200Response, Integer, Hash)>] GetPageWebhookSubscription200Response data, response status code and response headers
1382
+ def get_page_webhook_subscription_with_http_info(account_id, opts = {})
1383
+ if @api_client.config.debugging
1384
+ @api_client.config.logger.debug 'Calling API: ConnectApi.get_page_webhook_subscription ...'
1385
+ end
1386
+ # verify the required parameter 'account_id' is set
1387
+ if @api_client.config.client_side_validation && account_id.nil?
1388
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling ConnectApi.get_page_webhook_subscription"
1389
+ end
1390
+ # resource path
1391
+ local_var_path = '/v1/accounts/{accountId}/webhook-subscription'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
1392
+
1393
+ # query parameters
1394
+ query_params = opts[:query_params] || {}
1395
+
1396
+ # header parameters
1397
+ header_params = opts[:header_params] || {}
1398
+ # HTTP header 'Accept' (if needed)
1399
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1400
+
1401
+ # form parameters
1402
+ form_params = opts[:form_params] || {}
1403
+
1404
+ # http body (model)
1405
+ post_body = opts[:debug_body]
1406
+
1407
+ # return_type
1408
+ return_type = opts[:debug_return_type] || 'GetPageWebhookSubscription200Response'
1409
+
1410
+ # auth_names
1411
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1412
+
1413
+ new_options = opts.merge(
1414
+ :operation => :"ConnectApi.get_page_webhook_subscription",
1415
+ :header_params => header_params,
1416
+ :query_params => query_params,
1417
+ :form_params => form_params,
1418
+ :body => post_body,
1419
+ :auth_names => auth_names,
1420
+ :return_type => return_type
1421
+ )
1422
+
1423
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1424
+ if @api_client.config.debugging
1425
+ @api_client.config.logger.debug "API called: ConnectApi#get_page_webhook_subscription\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1426
+ end
1427
+ return data, status_code, headers
1428
+ end
1429
+
1367
1430
  # Get pending OAuth data
1368
1431
  # Fetch pending OAuth data for headless mode using the pendingDataToken from the redirect URL. **Scope**: This endpoint is used for LinkedIn organizations, Google Business Profile locations, Slack channels, Snapchat profiles, and Pinterest boards, where the selection list is too large to fit in URL params. The redirect carries a `pendingDataToken` instead of the full payload; the response includes the corresponding selection array (e.g. `boards` for Pinterest). WhatsApp, Facebook and other platforms pass selection state directly via URL query params on the redirect (`profileId`, `tempToken`, `step`), no pending record is created, so this endpoint will return 404 for those flows. Use the platform-specific selection endpoint instead (e.g. `/v1/connect/whatsapp/select-phone-number`). Reading the token does not consume it, so this fetch is repeatable until the token expires 1 hour after issuance. Completing the platform selection deletes the pending record, so the token stops working from then on. No authentication required.
1369
1432
  # @param token [String] The pending data token from the OAuth redirect URL (pendingDataToken parameter)
@@ -2775,6 +2838,69 @@ module Zernio
2775
2838
  return data, status_code, headers
2776
2839
  end
2777
2840
 
2841
+ # Re-subscribe a Facebook Page to Zernio's webhooks
2842
+ # Re-sends the full field set to Meta and returns the subscription read back afterwards. Meta only honours the field set sent at subscribe time, so a Page connected before a field existed stays without it until this runs. The response reflects what Meta actually granted, not what was requested.
2843
+ # @param account_id [String]
2844
+ # @param [Hash] opts the optional parameters
2845
+ # @return [ResyncPageWebhookSubscription200Response]
2846
+ def resync_page_webhook_subscription(account_id, opts = {})
2847
+ data, _status_code, _headers = resync_page_webhook_subscription_with_http_info(account_id, opts)
2848
+ data
2849
+ end
2850
+
2851
+ # Re-subscribe a Facebook Page to Zernio&#39;s webhooks
2852
+ # Re-sends the full field set to Meta and returns the subscription read back afterwards. Meta only honours the field set sent at subscribe time, so a Page connected before a field existed stays without it until this runs. The response reflects what Meta actually granted, not what was requested.
2853
+ # @param account_id [String]
2854
+ # @param [Hash] opts the optional parameters
2855
+ # @return [Array<(ResyncPageWebhookSubscription200Response, Integer, Hash)>] ResyncPageWebhookSubscription200Response data, response status code and response headers
2856
+ def resync_page_webhook_subscription_with_http_info(account_id, opts = {})
2857
+ if @api_client.config.debugging
2858
+ @api_client.config.logger.debug 'Calling API: ConnectApi.resync_page_webhook_subscription ...'
2859
+ end
2860
+ # verify the required parameter 'account_id' is set
2861
+ if @api_client.config.client_side_validation && account_id.nil?
2862
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling ConnectApi.resync_page_webhook_subscription"
2863
+ end
2864
+ # resource path
2865
+ local_var_path = '/v1/accounts/{accountId}/webhook-subscription'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
2866
+
2867
+ # query parameters
2868
+ query_params = opts[:query_params] || {}
2869
+
2870
+ # header parameters
2871
+ header_params = opts[:header_params] || {}
2872
+ # HTTP header 'Accept' (if needed)
2873
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
2874
+
2875
+ # form parameters
2876
+ form_params = opts[:form_params] || {}
2877
+
2878
+ # http body (model)
2879
+ post_body = opts[:debug_body]
2880
+
2881
+ # return_type
2882
+ return_type = opts[:debug_return_type] || 'ResyncPageWebhookSubscription200Response'
2883
+
2884
+ # auth_names
2885
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
2886
+
2887
+ new_options = opts.merge(
2888
+ :operation => :"ConnectApi.resync_page_webhook_subscription",
2889
+ :header_params => header_params,
2890
+ :query_params => query_params,
2891
+ :form_params => form_params,
2892
+ :body => post_body,
2893
+ :auth_names => auth_names,
2894
+ :return_type => return_type
2895
+ )
2896
+
2897
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
2898
+ if @api_client.config.debugging
2899
+ @api_client.config.logger.debug "API called: ConnectApi#resync_page_webhook_subscription\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2900
+ end
2901
+ return data, status_code, headers
2902
+ end
2903
+
2778
2904
  # Select Facebook page
2779
2905
  # Complete a classic Facebook Page connection with profileId, pageId, tempToken and userProfile. Use X-Connect-Token for headless connections. The dashboard business-login picker instead sends only selectionToken and pageId to complete a Meta Ads connection. The server verifies the initiating user, profile access, current grants and connection eligibility. The profile, platform token, ad-account scope and return URL come only from the encrypted grant. Business selection requires a session or bearer authentication for the initiating user; X-Connect-Token is not accepted. It returns redirect_url with connected=metaads on success or an eligibility error redirect.
2780
2906
  # @param select_facebook_page_request [SelectFacebookPageRequest]
@@ -0,0 +1,189 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ class GetPageWebhookSubscription200Response < ApiModelBase
18
+ attr_accessor :page_id
19
+
20
+ # False when the Page carries no subscription for our app at all.
21
+ attr_accessor :app_subscribed
22
+
23
+ # Whether lead ads submitted on this Page reach Zernio in real time.
24
+ attr_accessor :leadgen
25
+
26
+ attr_accessor :subscribed_fields
27
+
28
+ # Present only when leadgen is missing.
29
+ attr_accessor :warning
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+ :'page_id' => :'pageId',
35
+ :'app_subscribed' => :'appSubscribed',
36
+ :'leadgen' => :'leadgen',
37
+ :'subscribed_fields' => :'subscribedFields',
38
+ :'warning' => :'warning'
39
+ }
40
+ end
41
+
42
+ # Returns attribute mapping this model knows about
43
+ def self.acceptable_attribute_map
44
+ attribute_map
45
+ end
46
+
47
+ # Returns all the JSON keys this model knows about
48
+ def self.acceptable_attributes
49
+ acceptable_attribute_map.values
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.openapi_types
54
+ {
55
+ :'page_id' => :'String',
56
+ :'app_subscribed' => :'Boolean',
57
+ :'leadgen' => :'Boolean',
58
+ :'subscribed_fields' => :'Array<String>',
59
+ :'warning' => :'String'
60
+ }
61
+ end
62
+
63
+ # List of attributes with nullable: true
64
+ def self.openapi_nullable
65
+ Set.new([
66
+ :'warning'
67
+ ])
68
+ end
69
+
70
+ # Initializes the object
71
+ # @param [Hash] attributes Model attributes in the form of hash
72
+ def initialize(attributes = {})
73
+ if (!attributes.is_a?(Hash))
74
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::GetPageWebhookSubscription200Response` initialize method"
75
+ end
76
+
77
+ # check to see if the attribute exists and convert string to symbol for hash key
78
+ acceptable_attribute_map = self.class.acceptable_attribute_map
79
+ attributes = attributes.each_with_object({}) { |(k, v), h|
80
+ if (!acceptable_attribute_map.key?(k.to_sym))
81
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::GetPageWebhookSubscription200Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
82
+ end
83
+ h[k.to_sym] = v
84
+ }
85
+
86
+ if attributes.key?(:'page_id')
87
+ self.page_id = attributes[:'page_id']
88
+ end
89
+
90
+ if attributes.key?(:'app_subscribed')
91
+ self.app_subscribed = attributes[:'app_subscribed']
92
+ end
93
+
94
+ if attributes.key?(:'leadgen')
95
+ self.leadgen = attributes[:'leadgen']
96
+ end
97
+
98
+ if attributes.key?(:'subscribed_fields')
99
+ if (value = attributes[:'subscribed_fields']).is_a?(Array)
100
+ self.subscribed_fields = value
101
+ end
102
+ end
103
+
104
+ if attributes.key?(:'warning')
105
+ self.warning = attributes[:'warning']
106
+ end
107
+ end
108
+
109
+ # Show invalid properties with the reasons. Usually used together with valid?
110
+ # @return Array for valid properties with the reasons
111
+ def list_invalid_properties
112
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
113
+ invalid_properties = Array.new
114
+ invalid_properties
115
+ end
116
+
117
+ # Check to see if the all the properties in the model are valid
118
+ # @return true if the model is valid
119
+ def valid?
120
+ warn '[DEPRECATED] the `valid?` method is obsolete'
121
+ true
122
+ end
123
+
124
+ # Checks equality by comparing each attribute.
125
+ # @param [Object] Object to be compared
126
+ def ==(o)
127
+ return true if self.equal?(o)
128
+ self.class == o.class &&
129
+ page_id == o.page_id &&
130
+ app_subscribed == o.app_subscribed &&
131
+ leadgen == o.leadgen &&
132
+ subscribed_fields == o.subscribed_fields &&
133
+ warning == o.warning
134
+ end
135
+
136
+ # @see the `==` method
137
+ # @param [Object] Object to be compared
138
+ def eql?(o)
139
+ self == o
140
+ end
141
+
142
+ # Calculates hash code according to all attributes.
143
+ # @return [Integer] Hash code
144
+ def hash
145
+ [page_id, app_subscribed, leadgen, subscribed_fields, warning].hash
146
+ end
147
+
148
+ # Builds the object from hash
149
+ # @param [Hash] attributes Model attributes in the form of hash
150
+ # @return [Object] Returns the model itself
151
+ def self.build_from_hash(attributes)
152
+ return nil unless attributes.is_a?(Hash)
153
+ attributes = attributes.transform_keys(&:to_sym)
154
+ transformed_hash = {}
155
+ openapi_types.each_pair do |key, type|
156
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
157
+ transformed_hash["#{key}"] = nil
158
+ elsif type =~ /\AArray<(.*)>/i
159
+ # check to ensure the input is an array given that the attribute
160
+ # is documented as an array but the input is not
161
+ if attributes[attribute_map[key]].is_a?(Array)
162
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
163
+ end
164
+ elsif !attributes[attribute_map[key]].nil?
165
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
166
+ end
167
+ end
168
+ new(transformed_hash)
169
+ end
170
+
171
+ # Returns the object in the form of hash
172
+ # @return [Hash] Returns the object in the form of hash
173
+ def to_hash
174
+ hash = {}
175
+ self.class.attribute_map.each_pair do |attr, param|
176
+ value = self.send(attr)
177
+ if value.nil?
178
+ is_nullable = self.class.openapi_nullable.include?(attr)
179
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
180
+ end
181
+
182
+ hash[param] = _to_hash(value)
183
+ end
184
+ hash
185
+ end
186
+
187
+ end
188
+
189
+ end
@@ -55,7 +55,7 @@ module Zernio
55
55
  # Human-readable error message when status is failed. Contains platform-specific error details explaining why the publish failed.
56
56
  attr_accessor :error_message
57
57
 
58
- # Error category for programmatic handling: auth_expired (token expired/revoked), user_content (wrong format/too long), user_abuse (rate limits/spam), account_issue (config problems), platform_rejected (policy violation), platform_error (5xx/maintenance), platform_rate_limit (platform throttling, retried automatically), quota_exhausted (shared daily API quota empty, resumes at the platform's reset), system_error (Zernio infra), unknown
58
+ # Error category for programmatic handling: auth_expired (token expired/revoked), user_content (wrong format/too long), user_abuse (rate limits/spam), account_issue (config problems), platform_rejected (policy violation), platform_error (5xx/maintenance), platform_rate_limit (platform throttling, retried automatically), quota_exhausted (a shared quota pool the integration draws on is empty, including our own capacity gate in front of one; not caused by your content or account, and safe to retry once the pool frees up), system_error (Zernio infra), unknown
59
59
  attr_accessor :error_category
60
60
 
61
61
  # Who caused the error: user (fix content/reconnect), platform (outage/API change), system (Zernio issue, rare)
@@ -0,0 +1,195 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ class ResyncPageWebhookSubscription200Response < ApiModelBase
18
+ attr_accessor :resubscribed
19
+
20
+ attr_accessor :page_id
21
+
22
+ attr_accessor :app_subscribed
23
+
24
+ attr_accessor :leadgen
25
+
26
+ attr_accessor :subscribed_fields
27
+
28
+ attr_accessor :warning
29
+
30
+ # Attribute mapping from ruby-style variable name to JSON key.
31
+ def self.attribute_map
32
+ {
33
+ :'resubscribed' => :'resubscribed',
34
+ :'page_id' => :'pageId',
35
+ :'app_subscribed' => :'appSubscribed',
36
+ :'leadgen' => :'leadgen',
37
+ :'subscribed_fields' => :'subscribedFields',
38
+ :'warning' => :'warning'
39
+ }
40
+ end
41
+
42
+ # Returns attribute mapping this model knows about
43
+ def self.acceptable_attribute_map
44
+ attribute_map
45
+ end
46
+
47
+ # Returns all the JSON keys this model knows about
48
+ def self.acceptable_attributes
49
+ acceptable_attribute_map.values
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.openapi_types
54
+ {
55
+ :'resubscribed' => :'Boolean',
56
+ :'page_id' => :'String',
57
+ :'app_subscribed' => :'Boolean',
58
+ :'leadgen' => :'Boolean',
59
+ :'subscribed_fields' => :'Array<String>',
60
+ :'warning' => :'String'
61
+ }
62
+ end
63
+
64
+ # List of attributes with nullable: true
65
+ def self.openapi_nullable
66
+ Set.new([
67
+ :'warning'
68
+ ])
69
+ end
70
+
71
+ # Initializes the object
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ def initialize(attributes = {})
74
+ if (!attributes.is_a?(Hash))
75
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ResyncPageWebhookSubscription200Response` initialize method"
76
+ end
77
+
78
+ # check to see if the attribute exists and convert string to symbol for hash key
79
+ acceptable_attribute_map = self.class.acceptable_attribute_map
80
+ attributes = attributes.each_with_object({}) { |(k, v), h|
81
+ if (!acceptable_attribute_map.key?(k.to_sym))
82
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ResyncPageWebhookSubscription200Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
83
+ end
84
+ h[k.to_sym] = v
85
+ }
86
+
87
+ if attributes.key?(:'resubscribed')
88
+ self.resubscribed = attributes[:'resubscribed']
89
+ end
90
+
91
+ if attributes.key?(:'page_id')
92
+ self.page_id = attributes[:'page_id']
93
+ end
94
+
95
+ if attributes.key?(:'app_subscribed')
96
+ self.app_subscribed = attributes[:'app_subscribed']
97
+ end
98
+
99
+ if attributes.key?(:'leadgen')
100
+ self.leadgen = attributes[:'leadgen']
101
+ end
102
+
103
+ if attributes.key?(:'subscribed_fields')
104
+ if (value = attributes[:'subscribed_fields']).is_a?(Array)
105
+ self.subscribed_fields = value
106
+ end
107
+ end
108
+
109
+ if attributes.key?(:'warning')
110
+ self.warning = attributes[:'warning']
111
+ end
112
+ end
113
+
114
+ # Show invalid properties with the reasons. Usually used together with valid?
115
+ # @return Array for valid properties with the reasons
116
+ def list_invalid_properties
117
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
118
+ invalid_properties = Array.new
119
+ invalid_properties
120
+ end
121
+
122
+ # Check to see if the all the properties in the model are valid
123
+ # @return true if the model is valid
124
+ def valid?
125
+ warn '[DEPRECATED] the `valid?` method is obsolete'
126
+ true
127
+ end
128
+
129
+ # Checks equality by comparing each attribute.
130
+ # @param [Object] Object to be compared
131
+ def ==(o)
132
+ return true if self.equal?(o)
133
+ self.class == o.class &&
134
+ resubscribed == o.resubscribed &&
135
+ page_id == o.page_id &&
136
+ app_subscribed == o.app_subscribed &&
137
+ leadgen == o.leadgen &&
138
+ subscribed_fields == o.subscribed_fields &&
139
+ warning == o.warning
140
+ end
141
+
142
+ # @see the `==` method
143
+ # @param [Object] Object to be compared
144
+ def eql?(o)
145
+ self == o
146
+ end
147
+
148
+ # Calculates hash code according to all attributes.
149
+ # @return [Integer] Hash code
150
+ def hash
151
+ [resubscribed, page_id, app_subscribed, leadgen, subscribed_fields, warning].hash
152
+ end
153
+
154
+ # Builds the object from hash
155
+ # @param [Hash] attributes Model attributes in the form of hash
156
+ # @return [Object] Returns the model itself
157
+ def self.build_from_hash(attributes)
158
+ return nil unless attributes.is_a?(Hash)
159
+ attributes = attributes.transform_keys(&:to_sym)
160
+ transformed_hash = {}
161
+ openapi_types.each_pair do |key, type|
162
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
163
+ transformed_hash["#{key}"] = nil
164
+ elsif type =~ /\AArray<(.*)>/i
165
+ # check to ensure the input is an array given that the attribute
166
+ # is documented as an array but the input is not
167
+ if attributes[attribute_map[key]].is_a?(Array)
168
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
169
+ end
170
+ elsif !attributes[attribute_map[key]].nil?
171
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
172
+ end
173
+ end
174
+ new(transformed_hash)
175
+ end
176
+
177
+ # Returns the object in the form of hash
178
+ # @return [Hash] Returns the object in the form of hash
179
+ def to_hash
180
+ hash = {}
181
+ self.class.attribute_map.each_pair do |attr, param|
182
+ value = self.send(attr)
183
+ if value.nil?
184
+ is_nullable = self.class.openapi_nullable.include?(attr)
185
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
186
+ end
187
+
188
+ hash[param] = _to_hash(value)
189
+ end
190
+ hash
191
+ end
192
+
193
+ end
194
+
195
+ end
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.931'
14
+ VERSION = '0.0.933'
15
15
  end
data/lib/zernio-sdk.rb CHANGED
@@ -787,6 +787,7 @@ require 'zernio-sdk/models/get_media_presigned_url200_response'
787
787
  require 'zernio-sdk/models/get_media_presigned_url_request'
788
788
  require 'zernio-sdk/models/get_message_attachment200_response'
789
789
  require 'zernio-sdk/models/get_messenger_menu200_response'
790
+ require 'zernio-sdk/models/get_page_webhook_subscription200_response'
790
791
  require 'zernio-sdk/models/get_pending_o_auth_data200_response'
791
792
  require 'zernio-sdk/models/get_pending_o_auth_data200_response_organizations_inner'
792
793
  require 'zernio-sdk/models/get_phone_number200_response'
@@ -1397,6 +1398,7 @@ require 'zernio-sdk/models/respond_to_sms_registration_review200_response'
1397
1398
  require 'zernio-sdk/models/respond_to_sms_registration_review_request'
1398
1399
  require 'zernio-sdk/models/restore_workflow_version200_response'
1399
1400
  require 'zernio-sdk/models/restore_workflow_version200_response_workflow'
1401
+ require 'zernio-sdk/models/resync_page_webhook_subscription200_response'
1400
1402
  require 'zernio-sdk/models/retry_post207_response'
1401
1403
  require 'zernio-sdk/models/retweet_post200_response'
1402
1404
  require 'zernio-sdk/models/retweet_post_request'
data/openapi.yaml CHANGED
@@ -5455,7 +5455,7 @@ components:
5455
5455
  errorCategory:
5456
5456
  type: string
5457
5457
  enum: [auth_expired, user_content, user_abuse, account_issue, platform_rejected, platform_error, platform_rate_limit, quota_exhausted, system_error, unknown]
5458
- description: "Error category for programmatic handling: auth_expired (token expired/revoked), user_content (wrong format/too long), user_abuse (rate limits/spam), account_issue (config problems), platform_rejected (policy violation), platform_error (5xx/maintenance), platform_rate_limit (platform throttling, retried automatically), quota_exhausted (shared daily API quota empty, resumes at the platform's reset), system_error (Zernio infra), unknown"
5458
+ description: "Error category for programmatic handling: auth_expired (token expired/revoked), user_content (wrong format/too long), user_abuse (rate limits/spam), account_issue (config problems), platform_rejected (policy violation), platform_error (5xx/maintenance), platform_rate_limit (platform throttling, retried automatically), quota_exhausted (a shared quota pool the integration draws on is empty, including our own capacity gate in front of one; not caused by your content or account, and safe to retry once the pool frees up), system_error (Zernio infra), unknown"
5459
5459
  errorSource:
5460
5460
  type: string
5461
5461
  enum: [user, platform, system]
@@ -24210,6 +24210,73 @@ paths:
24210
24210
  '404': { description: Code not found }
24211
24211
  '500': { description: Internal error }
24212
24212
 
24213
+ /v1/accounts/{accountId}/webhook-subscription:
24214
+ get:
24215
+ x-resource-group: "accounts"
24216
+ operationId: getPageWebhookSubscription
24217
+ tags: [Connect]
24218
+ summary: Read a Facebook Page's webhook subscription
24219
+ description: |
24220
+ Returns the webhook fields Zernio's app is subscribed to on the connected Page, read live from Meta.
24221
+ Use it to confirm `leadgen` is present: a Page missing it keeps delivering every other event while
24222
+ lead ads stop arriving, with nothing to indicate it.
24223
+ parameters:
24224
+ - name: accountId
24225
+ in: path
24226
+ required: true
24227
+ schema: { type: string }
24228
+ responses:
24229
+ '200':
24230
+ description: The Page's current subscription
24231
+ content:
24232
+ application/json:
24233
+ schema:
24234
+ type: object
24235
+ properties:
24236
+ pageId: { type: string }
24237
+ appSubscribed: { type: boolean, description: 'False when the Page carries no subscription for our app at all.' }
24238
+ leadgen: { type: boolean, description: 'Whether lead ads submitted on this Page reach Zernio in real time.' }
24239
+ subscribedFields: { type: array, items: { type: string } }
24240
+ warning: { type: [string, 'null'], description: 'Present only when leadgen is missing.' }
24241
+ '400': { $ref: '#/components/responses/BadRequest' }
24242
+ '404': { $ref: '#/components/responses/NotFound' }
24243
+ '409':
24244
+ description: The connection has no selected Page
24245
+ post:
24246
+ x-resource-group: "accounts"
24247
+ operationId: resyncPageWebhookSubscription
24248
+ tags: [Connect]
24249
+ summary: Re-subscribe a Facebook Page to Zernio's webhooks
24250
+ description: |
24251
+ Re-sends the full field set to Meta and returns the subscription read back afterwards.
24252
+ Meta only honours the field set sent at subscribe time, so a Page connected before a field
24253
+ existed stays without it until this runs. The response reflects what Meta actually granted,
24254
+ not what was requested.
24255
+ parameters:
24256
+ - name: accountId
24257
+ in: path
24258
+ required: true
24259
+ schema: { type: string }
24260
+ responses:
24261
+ '200':
24262
+ description: The subscription after re-subscribing
24263
+ content:
24264
+ application/json:
24265
+ schema:
24266
+ type: object
24267
+ properties:
24268
+ resubscribed: { type: boolean }
24269
+ pageId: { type: string }
24270
+ appSubscribed: { type: boolean }
24271
+ leadgen: { type: boolean }
24272
+ subscribedFields: { type: array, items: { type: string } }
24273
+ warning: { type: [string, 'null'] }
24274
+ '400': { $ref: '#/components/responses/BadRequest' }
24275
+ '404': { $ref: '#/components/responses/NotFound' }
24276
+ '409':
24277
+ description: The connection has no selected Page
24278
+ '502':
24279
+ description: Meta rejected the subscription
24213
24280
  /v1/accounts/{accountId}/facebook-page:
24214
24281
  get:
24215
24282
  x-resource-group: "accounts"
@@ -276,6 +276,18 @@ describe 'ConnectApi' do
276
276
  end
277
277
  end
278
278
 
279
+ # unit tests for get_page_webhook_subscription
280
+ # Read a Facebook Page&#39;s webhook subscription
281
+ # Returns the webhook fields Zernio&#39;s app is subscribed to on the connected Page, read live from Meta. Use it to confirm &#x60;leadgen&#x60; is present: a Page missing it keeps delivering every other event while lead ads stop arriving, with nothing to indicate it.
282
+ # @param account_id
283
+ # @param [Hash] opts the optional parameters
284
+ # @return [GetPageWebhookSubscription200Response]
285
+ describe 'get_page_webhook_subscription test' do
286
+ it 'should work' do
287
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
288
+ end
289
+ end
290
+
279
291
  # unit tests for get_pending_o_auth_data
280
292
  # Get pending OAuth data
281
293
  # Fetch pending OAuth data for headless mode using the pendingDataToken from the redirect URL. **Scope**: This endpoint is used for LinkedIn organizations, Google Business Profile locations, Slack channels, Snapchat profiles, and Pinterest boards, where the selection list is too large to fit in URL params. The redirect carries a &#x60;pendingDataToken&#x60; instead of the full payload; the response includes the corresponding selection array (e.g. &#x60;boards&#x60; for Pinterest). WhatsApp, Facebook and other platforms pass selection state directly via URL query params on the redirect (&#x60;profileId&#x60;, &#x60;tempToken&#x60;, &#x60;step&#x60;), no pending record is created, so this endpoint will return 404 for those flows. Use the platform-specific selection endpoint instead (e.g. &#x60;/v1/connect/whatsapp/select-phone-number&#x60;). Reading the token does not consume it, so this fetch is repeatable until the token expires 1 hour after issuance. Completing the platform selection deletes the pending record, so the token stops working from then on. No authentication required.
@@ -542,6 +554,18 @@ describe 'ConnectApi' do
542
554
  end
543
555
  end
544
556
 
557
+ # unit tests for resync_page_webhook_subscription
558
+ # Re-subscribe a Facebook Page to Zernio&#39;s webhooks
559
+ # Re-sends the full field set to Meta and returns the subscription read back afterwards. Meta only honours the field set sent at subscribe time, so a Page connected before a field existed stays without it until this runs. The response reflects what Meta actually granted, not what was requested.
560
+ # @param account_id
561
+ # @param [Hash] opts the optional parameters
562
+ # @return [ResyncPageWebhookSubscription200Response]
563
+ describe 'resync_page_webhook_subscription test' do
564
+ it 'should work' do
565
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
566
+ end
567
+ end
568
+
545
569
  # unit tests for select_facebook_page
546
570
  # Select Facebook page
547
571
  # Complete a classic Facebook Page connection with profileId, pageId, tempToken and userProfile. Use X-Connect-Token for headless connections. The dashboard business-login picker instead sends only selectionToken and pageId to complete a Meta Ads connection. The server verifies the initiating user, profile access, current grants and connection eligibility. The profile, platform token, ad-account scope and return URL come only from the encrypted grant. Business selection requires a session or bearer authentication for the initiating user; X-Connect-Token is not accepted. It returns redirect_url with connected&#x3D;metaads on success or an eligibility error redirect.
@@ -0,0 +1,60 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::GetPageWebhookSubscription200Response
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::GetPageWebhookSubscription200Response do
21
+ #let(:instance) { Zernio::GetPageWebhookSubscription200Response.new }
22
+
23
+ describe 'test an instance of GetPageWebhookSubscription200Response' do
24
+ it 'should create an instance of GetPageWebhookSubscription200Response' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::GetPageWebhookSubscription200Response)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "page_id"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "app_subscribed"' 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 "leadgen"' 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 "subscribed_fields"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ describe 'test attribute "warning"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
60
+ end
@@ -0,0 +1,66 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::ResyncPageWebhookSubscription200Response
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::ResyncPageWebhookSubscription200Response do
21
+ #let(:instance) { Zernio::ResyncPageWebhookSubscription200Response.new }
22
+
23
+ describe 'test an instance of ResyncPageWebhookSubscription200Response' do
24
+ it 'should create an instance of ResyncPageWebhookSubscription200Response' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::ResyncPageWebhookSubscription200Response)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "resubscribed"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "page_id"' 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 "app_subscribed"' 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 "leadgen"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ describe 'test attribute "subscribed_fields"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
60
+ describe 'test attribute "warning"' do
61
+ it 'should work' do
62
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
63
+ end
64
+ end
65
+
66
+ end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: late-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.931
4
+ version: 0.0.933
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
@@ -869,6 +869,7 @@ files:
869
869
  - docs/GetMediaPresignedUrlRequest.md
870
870
  - docs/GetMessageAttachment200Response.md
871
871
  - docs/GetMessengerMenu200Response.md
872
+ - docs/GetPageWebhookSubscription200Response.md
872
873
  - docs/GetPendingOAuthData200Response.md
873
874
  - docs/GetPendingOAuthData200ResponseOrganizationsInner.md
874
875
  - docs/GetPhoneNumber200Response.md
@@ -1495,6 +1496,7 @@ files:
1495
1496
  - docs/RespondToSmsRegistrationReviewRequest.md
1496
1497
  - docs/RestoreWorkflowVersion200Response.md
1497
1498
  - docs/RestoreWorkflowVersion200ResponseWorkflow.md
1499
+ - docs/ResyncPageWebhookSubscription200Response.md
1498
1500
  - docs/RetryPost207Response.md
1499
1501
  - docs/RetweetPost200Response.md
1500
1502
  - docs/RetweetPostRequest.md
@@ -3008,6 +3010,7 @@ files:
3008
3010
  - lib/zernio-sdk/models/get_media_presigned_url_request.rb
3009
3011
  - lib/zernio-sdk/models/get_message_attachment200_response.rb
3010
3012
  - lib/zernio-sdk/models/get_messenger_menu200_response.rb
3013
+ - lib/zernio-sdk/models/get_page_webhook_subscription200_response.rb
3011
3014
  - lib/zernio-sdk/models/get_pending_o_auth_data200_response.rb
3012
3015
  - lib/zernio-sdk/models/get_pending_o_auth_data200_response_organizations_inner.rb
3013
3016
  - lib/zernio-sdk/models/get_phone_number200_response.rb
@@ -3618,6 +3621,7 @@ files:
3618
3621
  - lib/zernio-sdk/models/respond_to_sms_registration_review_request.rb
3619
3622
  - lib/zernio-sdk/models/restore_workflow_version200_response.rb
3620
3623
  - lib/zernio-sdk/models/restore_workflow_version200_response_workflow.rb
3624
+ - lib/zernio-sdk/models/resync_page_webhook_subscription200_response.rb
3621
3625
  - lib/zernio-sdk/models/retry_post207_response.rb
3622
3626
  - lib/zernio-sdk/models/retweet_post200_response.rb
3623
3627
  - lib/zernio-sdk/models/retweet_post_request.rb
@@ -5104,6 +5108,7 @@ files:
5104
5108
  - spec/models/get_media_presigned_url_request_spec.rb
5105
5109
  - spec/models/get_message_attachment200_response_spec.rb
5106
5110
  - spec/models/get_messenger_menu200_response_spec.rb
5111
+ - spec/models/get_page_webhook_subscription200_response_spec.rb
5107
5112
  - spec/models/get_pending_o_auth_data200_response_organizations_inner_spec.rb
5108
5113
  - spec/models/get_pending_o_auth_data200_response_spec.rb
5109
5114
  - spec/models/get_phone_number200_response_phone_number_spec.rb
@@ -5714,6 +5719,7 @@ files:
5714
5719
  - spec/models/respond_to_sms_registration_review_request_spec.rb
5715
5720
  - spec/models/restore_workflow_version200_response_spec.rb
5716
5721
  - spec/models/restore_workflow_version200_response_workflow_spec.rb
5722
+ - spec/models/resync_page_webhook_subscription200_response_spec.rb
5717
5723
  - spec/models/retry_post207_response_spec.rb
5718
5724
  - spec/models/retweet_post200_response_spec.rb
5719
5725
  - spec/models/retweet_post_request_spec.rb
@@ -6361,7 +6367,7 @@ files:
6361
6367
  - spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
6362
6368
  - spec/models/you_tube_video_retention_response_spec.rb
6363
6369
  - spec/spec_helper.rb
6364
- - zernio-sdk-0.0.931.gem
6370
+ - zernio-sdk-0.0.933.gem
6365
6371
  - zernio-sdk.gemspec
6366
6372
  homepage: https://openapi-generator.tech
6367
6373
  licenses:
@@ -6499,6 +6505,7 @@ test_files:
6499
6505
  - spec/models/search_reddit200_response_spec.rb
6500
6506
  - spec/models/list_phone_number_countries200_response_spec.rb
6501
6507
  - spec/models/bulk_update_ad_campaign_status_request_campaigns_inner_spec.rb
6508
+ - spec/models/resync_page_webhook_subscription200_response_spec.rb
6502
6509
  - spec/models/linked_in_ads_platform_data_event_spec.rb
6503
6510
  - spec/models/business_agent_ui_skill_input_spec.rb
6504
6511
  - spec/models/update_conversion_destination_request_value_spec.rb
@@ -7724,6 +7731,7 @@ test_files:
7724
7731
  - spec/models/webhook_payload_ad_status_changed_status_spec.rb
7725
7732
  - spec/models/create_blog_article_request_seo_spec.rb
7726
7733
  - spec/models/google_business_platform_data_event_schedule_spec.rb
7734
+ - spec/models/get_page_webhook_subscription200_response_spec.rb
7727
7735
  - spec/models/update_facebook_page_request_spec.rb
7728
7736
  - spec/models/create_phone_number_kyc_link_request_branding_spec.rb
7729
7737
  - spec/models/update_ad_campaign_request_budget_spec.rb
Binary file