- How do I install ka4ivan/laravel-notification-channel-instagram in Laravel?
- Install it with composer require ka4ivan/laravel-notification-channel-instagram. Add an instagram key to config/services.php with api_version, access_token, and profile_id, typically fed by INSTAGRAM_API_VERSION, INSTAGRAM_ACCESS_TOKEN, and INSTAGRAM_PROFILE_ID. You also need a Meta app and Instagram professional account with the correct messaging permissions before sending.
- Which Laravel versions does laravel-notification-channel-instagram support?
- The package tracks Laravel framework upgrades, and the changelog shows Laravel 13 support as of release 1.3.1. Because exact constraints can change between releases, check the package's composer.json or Packagist page for the PHP and Laravel versions required by the tag you install.
- How do I send a Laravel notification through Instagram Messenger?
- Add the package's Instagram channel class to your notification's via() method and return an InstagramMessage from the notification method expected by the channel, commonly toInstagram(). The notifiable model should implement routeNotificationForInstagram() to return the recipient Instagram profile ID or IGSID. Then send notifications normally with $user->notify(new YourNotification()).
- What message content can I send with InstagramMessage?
- The channel supports outbound text messages, single attachments via attach, and multiple attachments via attachMany using AttachmentType::IMAGE, AUDIO, or VIDEO. It also supports up to three call-to-action buttons with web_url and postback types, plus per-message overrides for API version, access token, and profile ID. It is for outbound notifications, not inbound conversation handling.
- Can I send images, video, or audio in Instagram notifications?
- Yes. Use attach for one media item or attachMany with AttachmentType::IMAGE, AUDIO, or VIDEO. Media must be reachable by Meta, and the platform's documented limits apply, such as 8 MB for images and 25 MB for audio or video. The available documentation does not clearly state whether size limits are enforced client-side or only rejected by the API.
- How do I add buttons to an Instagram notification message?
- InstagramMessage supports up to three call-to-action buttons, with web_url and postback button types. Build them with the package's button methods and attach them to the message payload. Because the fluent builder hides the raw payload, log Graph API responses if Meta rejects a button combination at send time.
- What does the instagram:set-start-buttons artisan command do?
- It registers Instagram ice-breaker start buttons from the start_buttons array in config/services.php. Run php artisan instagram:set-start-buttons after setting your access token and profile ID. The command also accepts access_token and profile_id options for overriding config values.
- Can Instagram notifications be queued, and does the package handle rate limits?
- You can queue Laravel notifications that use this channel like any other notification, but the package does not provide built-in rate-limit handling, retry/backoff, idempotency, delivery receipts, or metrics. Add your own throttling, such as Laravel's RateLimited middleware or a Redis throttle per profile ID, and use queue retryUntil and failed() hooks. Confirm per-profile limits against Meta's messaging policies before high-volume sends.
- How are Instagram Graph API errors surfaced by this Laravel package?
- The available documentation does not define a detailed error contract, so verify how your installed version surfaces failures. Since the package is a thin adapter over the Instagram Messaging API, rejected payloads can appear as generic API errors unless you log the underlying response. Catch exceptions around sends and use Laravel queue failed() hooks so failures do not disappear.
- Is laravel-notification-channel-instagram suitable for production customer support?
- It is a legitimate MVP channel for outbound notifications, reminders, and promotions, but it has no webhook or inbound handler, conversation state, inbox, or analytics. It also has low community validation, a single-maintainer bus factor, and depends on Meta permissions, messaging windows, and token lifecycle. For conversational support, evaluate a fuller Instagram messaging platform or a direct Graph API integration with your own inbound and state layers.