Class: Zernio::InboxApi
- Inherits:
-
Object
- Object
- Zernio::InboxApi
- Defined in:
- lib/zernio-sdk/api/inbox_api.rb
Instance Attribute Summary collapse
-
#api_client ⇒ Object
Returns the value of attribute api_client.
Instance Method Summary collapse
-
#get_whats_app_media(media_id, account_id, opts = {}) ⇒ File
Download WhatsApp media Streams the binary for a WhatsApp attachment.
-
#get_whats_app_media_with_http_info(media_id, account_id, opts = {}) ⇒ Array<(File, Integer, Hash)>
Download WhatsApp media Streams the binary for a WhatsApp attachment.
-
#initialize(api_client = ApiClient.default) ⇒ InboxApi
constructor
A new instance of InboxApi.
Constructor Details
Instance Attribute Details
#api_client ⇒ Object
Returns the value of attribute api_client.
17 18 19 |
# File 'lib/zernio-sdk/api/inbox_api.rb', line 17 def api_client @api_client end |
Instance Method Details
#get_whats_app_media(media_id, account_id, opts = {}) ⇒ File
Download WhatsApp media
Streams the binary for a WhatsApp attachment. This is the endpoint the url on a WhatsApp attachments[] entry points at, in both the message.received webhook and the List messages response. This is an authenticated endpoint, not a public link. Send Authorization: Bearer <your API key> exactly as you would for any other call. Passing the URL straight to a browser, an LLM vision API, or a no-code "download file" step without the header returns 401. This is the most common integration mistake on this endpoint, and it differs from Instagram, Facebook and Telegram, whose attachments[].url is a direct CDN link that needs no header. Fetch on receipt, not lazily. WhatsApp media lives in Meta's media store, not ours, and it is removed after a limited retention window (currently 7 days, and Meta has been dropping some inbound media sooner). Once Meta drops it the media is unrecoverable and this endpoint answers 400 permanently, so retrying will never succeed. Download and store the bytes when the webhook arrives.
28 29 30 31 |
# File 'lib/zernio-sdk/api/inbox_api.rb', line 28 def get_whats_app_media(media_id, account_id, opts = {}) data, _status_code, _headers = get_whats_app_media_with_http_info(media_id, account_id, opts) data end |
#get_whats_app_media_with_http_info(media_id, account_id, opts = {}) ⇒ Array<(File, Integer, Hash)>
Download WhatsApp media Streams the binary for a WhatsApp attachment. This is the endpoint the `url` on a WhatsApp `attachments` entry points at, in both the `message.received` webhook and the List messages response. This is an authenticated endpoint, not a public link. Send `Authorization: Bearer <your API key>` exactly as you would for any other call. Passing the URL straight to a browser, an LLM vision API, or a no-code "download file" step without the header returns `401`. This is the most common integration mistake on this endpoint, and it differs from Instagram, Facebook and Telegram, whose `attachments.url` is a direct CDN link that needs no header. Fetch on receipt, not lazily. WhatsApp media lives in Meta's media store, not ours, and it is removed after a limited retention window (currently 7 days, and Meta has been dropping some inbound media sooner). Once Meta drops it the media is unrecoverable and this endpoint answers `400` permanently, so retrying will never succeed. Download and store the bytes when the webhook arrives.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/zernio-sdk/api/inbox_api.rb', line 39 def get_whats_app_media_with_http_info(media_id, account_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: InboxApi.get_whats_app_media ...' end # verify the required parameter 'media_id' is set if @api_client.config.client_side_validation && media_id.nil? fail ArgumentError, "Missing the required parameter 'media_id' when calling InboxApi.get_whats_app_media" end # verify the required parameter 'account_id' is set if @api_client.config.client_side_validation && account_id.nil? fail ArgumentError, "Missing the required parameter 'account_id' when calling InboxApi.get_whats_app_media" end # resource path local_var_path = '/v1/whatsapp/media/{mediaId}'.sub('{' + 'mediaId' + '}', CGI.escape(media_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'accountId'] = account_id # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/octet-stream', 'application/json']) unless header_params['Accept'] # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'File' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"InboxApi.get_whats_app_media", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: InboxApi#get_whats_app_media\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |