Instale, configure e use os SDKs de servidor do OneSignal para enviar notificações push, emails e SMS do seu backend em Node.js, Python, Java, Go, PHP, Ruby, C# e Rust.
Todos os SDKs de servidor do OneSignal são gerados a partir da mesma especificação OpenAPI, portanto compartilham uma interface consistente independentemente da linguagem. Cada SDK envolve a OneSignal REST API e fornece modelos tipados para requisições e respostas.
Cada SDK requer autenticação via chaves de API. Dois tipos de chave estão disponíveis:
REST API Key — necessária para a maioria dos endpoints (envio de notificações, gerenciamento de usuários, etc.). Encontrada em Configurações > Chaves e IDs do seu app.
Organization API Key — necessária apenas para endpoints no nível da organização, como criar ou listar apps. Encontrada em Configurações da Organização.
use onesignal\client\api\DefaultApi;use onesignal\client\Configuration;use GuzzleHttp;$config = Configuration::getDefaultConfiguration() ->setRestApiKeyToken('YOUR_REST_API_KEY') ->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');$client = new DefaultApi( new GuzzleHttp\Client(), $config);
using OneSignalApi.Api;using OneSignalApi.Client;var config = new Configuration();config.BasePath = "https://api.onesignal.com";config.AccessToken = "YOUR_REST_API_KEY";var client = new DefaultApi(config);
use onesignal::apis::configuration::Configuration;fn create_configuration() -> Configuration { let mut config = Configuration::new(); config.rest_api_key_token = Some("YOUR_REST_API_KEY".to_string()); config.organization_api_key_token = Some("YOUR_ORGANIZATION_API_KEY".to_string()); config}
Armazene suas chaves de API em variáveis de ambiente ou em um gerenciador de segredos. Nunca as commite no controle de versão.
Envie notificações push para Assinaturas web e móveis segmentando um segmento. Estes exemplos mostram o caminho feliz — adicione tratamento de erros (try/catch, callbacks de erro) para uso em produção.
use onesignal\client\model\Notification;use onesignal\client\model\StringMap;$content = new StringMap();$content->setEn('Hello from OneSignal!');$headings = new StringMap();$headings->setEn('Push Notification');$notification = new Notification();$notification->setAppId('YOUR_APP_ID');$notification->setContents($content);$notification->setHeadings($headings);$notification->setIncludedSegments(['Subscribed Users']);$response = $client->createNotification($notification);echo 'Notification ID: ' . $response->getId();
const notification = new OneSignal.Notification();notification.app_id = 'YOUR_APP_ID';notification.email_subject = 'Important Update';notification.email_body = '<h1>Hello!</h1><p>This is an HTML email.</p>';notification.included_segments = ['Subscribed Users'];notification.channel_for_external_user_ids = 'email';const response = await client.createNotification(notification);
notification = onesignal.Notification( app_id='YOUR_APP_ID', email_subject='Important Update', email_body='<h1>Hello!</h1><p>This is an HTML email.</p>', included_segments=['Subscribed Users'], channel_for_external_user_ids='email',)response = client.create_notification(notification)
Notification notification = new Notification();notification.setAppId("YOUR_APP_ID");notification.setEmailSubject("Important Update");notification.setEmailBody("<h1>Hello!</h1><p>This is an HTML email.</p>");notification.setIncludedSegments(Arrays.asList("Subscribed Users"));notification.setChannelForExternalUserIds("email");var response = client.createNotification(notification);
notification := *onesignal.NewNotification("YOUR_APP_ID")notification.SetEmailSubject("Important Update")notification.SetEmailBody("<h1>Hello!</h1><p>This is an HTML email.</p>")notification.SetIncludedSegments([]string{"Subscribed Users"})notification.SetChannelForExternalUserIds("email")response, _, err := apiClient.DefaultApi .CreateNotification(orgAuth) .Notification(notification) .Execute()
$notification = new Notification();$notification->setAppId('YOUR_APP_ID');$notification->setEmailSubject('Important Update');$notification->setEmailBody('<h1>Hello!</h1><p>This is an HTML email.</p>');$notification->setIncludedSegments(['Subscribed Users']);$notification->setChannelForExternalUserIds('email');$response = $client->createNotification($notification);
notification = OneSignal::Notification.new({ app_id: 'YOUR_APP_ID', email_subject: 'Important Update', email_body: '<h1>Hello!</h1><p>This is an HTML email.</p>', included_segments: ['Subscribed Users'], channel_for_external_user_ids: 'email'})response = client.create_notification(notification)
var notification = new Notification(appId: "YOUR_APP_ID"){ EmailSubject = "Important Update", EmailBody = "<h1>Hello!</h1><p>This is an HTML email.</p>", IncludedSegments = new List<string> { "Subscribed Users" }, ChannelForExternalUserIds = "email"};var response = client.CreateNotification(notification);
let mut notification = Notification::new("YOUR_APP_ID".to_string());notification.email_subject = Some("Important Update".to_string());notification.email_body = Some("<h1>Hello!</h1><p>This is an HTML email.</p>".to_string());notification.included_segments = Some(vec!["Subscribed Users".to_string()]);notification.channel_for_external_user_ids = Some("email".to_string());let response = default_api::create_notification(&config, notification).await;
Cada SDK de servidor suporta o mesmo conjunto de endpoints da API. Consulte a documentação da API do seu SDK para a lista completa de métodos, incluindo usuários, assinaturas, segmentos, templates e mais.
Use o SDK que corresponde à sua linguagem de backend. Todos os SDKs de servidor são gerados a partir da mesma especificação OpenAPI e suportam os mesmos endpoints, portanto a funcionalidade é idêntica entre as linguagens.
Qual é a diferença entre a REST API Key e a Organization API Key?
A REST API Key tem escopo para um único app e é necessária para a maioria das operações, como enviar notificações e gerenciar usuários. A Organization API Key tem escopo para sua organização e só é necessária para criar ou listar apps. A maioria das integrações só precisa da REST API Key.
Posso usar a REST API diretamente em vez de um SDK?
Sim. Os SDKs de servidor são invólucros convenientes em torno da OneSignal REST API. Você pode chamar a API diretamente usando qualquer cliente HTTP com o esquema de autenticação key (Authorization: key YOUR_REST_API_KEY).
Sim. Todos os SDKs de servidor são gerados a partir da especificação OpenAPI do OneSignal usando o OpenAPI Generator. Isso garante cobertura de API consistente em todas as linguagens.