Webhook, iş ortağı tarafından oluşturulan ve temsilcinizin mesajlara ve etkinliklere nasıl yanıt vermesi gerektiğini belirten bir HTTPS geri çağırma yöntemidir. Webhook'unuzu yapılandırdıktan sonra, mesaj ve etkinlik almaya başlayabilirsiniz.
İş ortağı webhook'ları ve aracı webhook'ları
Webhook'unuzu iş ortağı düzeyinde veya temsilci düzeyinde yapılandırabilirsiniz.
- İş ortağı webhook'unuz, sahip olduğunuz her temsilci için geçerlidir. Temsilcilerinizin davranışı benzerse veya sadece tek bir temsilciniz varsa iş ortağı webhook'unu kullanın.
- Aracı webhook'ları bireysel temsilciler için geçerlidir. Farklı davranışlara sahip birden fazla aracı çalıştırıyorsanız her bir aracı için farklı bir webhook ayarlayabilirsiniz.
Hem iş ortağı webhook'u hem de aracı webhook'u yapılandırdıysanız temsilci webhook, kendi belirli aracısında öncelikli olur. İş ortağı webhook ise kendi webhook'u olmayan tüm aracılar için geçerlidir.
Aracı webhook'unu yapılandırma
Temsilcinize gönderilen mesajları iş ortağı webhook'unuzda alırsınız. Bunun yerine, belirli bir temsilcinin mesajlarının farklı bir webhook'a ulaşmasını istiyorsanız bir aracı webhook'u ayarlayın.
- İş İletişimleri Geliştirici Konsolu'nu açın ve RBM iş ortağı Google Hesabınızla oturum açın.
- Temsilcinizi tıklayın.
- Integrations'ı (Entegrasyonlar) tıklayın.
- Webhook için Yapılandır'ı tıklayın.
- Webhook uç nokta URL'si için "https://" ile başlayan webhook URL'nizi girin.
clientToken
değerinizi not edin. Aldığınız mesajların Google'dan geldiğini doğrulamak için bu numarayı kullanmanız gerekir.Webhook'unuzu belirtilen
clientToken
parametresiyle birPOST
isteğini kabul edecek şekilde yapılandırın ve yanıt gövdesi olaraksecret
parametresinin düz metin değerini içeren bir200 OK
yanıtı gönderin.Örneğin, webhook'unuz aşağıdaki gövde içeriğini içeren bir
POST
isteği alırsa:{ "clientToken":"SJENCPGJESMGUFPY", "secret":"1234567890" }
webhook'unuz
clientToken
değerini onaylamalı veclientToken
doğruysa yanıt gövdesi olarak1234567890
ile200 OK
yanıtı döndürmelidir:// clientToken from Configure const myClientToken = "SJENCPGJESMGUFPY"; // Example endpoint app.post("/rbm-webhook", (req, res) => { const msg = req.body; if (msg.clientToken === myClientToken) { res.status(200).send(msg.secret); return; } res.send(400); });
Developer Console'da Doğrula'yı tıklayın. RBM webhook'unuzu doğruladığında iletişim kutusu kapanır.
Gelen iletileri doğrulama
Webhook'lar herhangi bir gönderenden mesaj alabildiğinden, Google'ın mesaj içeriğini işlemeden önce gelen mesajları gönderdiğini doğrulamanız gerekir.
Aldığınız iletinin Google tarafından gönderildiğini doğrulamak için aşağıdaki adımları uygulayın:
- İletinin
X-Goog-Signature
üstbilgisini çıkarın. Bu, mesaj gövdesi yükünün karma ve base64 kodlu bir kopyasıdır. - İsteğin
message.body
öğesinde RBM yükünün Base-64 kodunu çöz. - Webhook'unuzu ayarlarken belirttiğiniz istemci jetonunu, webhook'unuzun istemci jetonunu anahtar olarak kullanarak base 64 kodu çözülmüş mesaj yükünün baytları için bir SHA512 HMAC oluşturun ve sonucu base64 olarak kodlayın.
X-Goog-Signature
karmasını, oluşturduğunuz karma ile karşılaştırın.- Karma değerleri eşleşiyorsa mesajın Google tarafından gönderildiğini onaylamış olursunuz.
Karmalar eşleşmiyorsa bilinen iyi bir mesajla ilgili karma oluşturma işleminizi kontrol edin.
Karma oluşturma işleminiz düzgün çalışıyorsa ve size hileli bir şekilde gönderildiğini düşündüğünüz bir mesaj alırsanız bize ulaşın.
Node.js
if ((requestBody.hasOwnProperty('message')) && (requestBody.message.hasOwnProperty('data'))) { // Validate the received hash to ensure the message came from Google RBM let userEventString = Buffer.from(requestBody.message.data, 'base64'); let hmac = crypto.createHmac('sha512', CLIENT_TOKEN); let data = hmac.update(userEventString); let genHash = data.digest('base64'); let headerHash = req.header('X-Goog-Signature'); if (headerHash === genHash) { let userEvent = JSON.parse(userEventString); console.log('userEventString: ' + userEventString); handleMessage(userEvent); } else { console.log('hash mismatch - ignoring message'); } } res.sendStatus(200);
Sonraki adımlar
Webhook'unuzu yapılandırdıktan sonra, temsilciniz test cihazlarınızdan mesaj alabilir. Kurulumunuzu doğrulamak için mesaj gönderin.