10

Tôi muốn gửi thông báo đẩy để tất cả người dùng máy tính để bàn của tôi sử dụng tin nhắn google cloudDesktop push thông báo bằng tin nhắn điện toán đám mây của Google và nhân viên dịch vụ

tôi hoàn thành các bước sau thành công

  • khởi tạo trong lao động dịch vụ
  • Đã tạo một dự án trên Bảng điều khiển dành cho nhà phát triển của Google
  • Đã thêm tệp kê khai
  • được gửi bằng cách sử dụng php CURL

Đây là CURL tôi lệnh

$url = 'https://android.googleapis.com/gcm/send'; 
$msg="hi"; 
$data = array('title'=> $msg,'message'=>'Hello'); 
$regids= // added regids; 
$fields = array('to' => $regids,'data' => $data); 
$headers = array('Authorization: My auth key','Content-Type: application/json'); 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 

print_r(json_encode($fields)); 
$result=curl_exec($ch); 
echo $result; 
if($result==FALSE) 
{ 
    die('Curl Failed'); 
} 
curl_close($ch); 

Tất cả mọi thứ tốt đẹp đang làm việc và tôi có thể hiển thị một thông báo mặc định sử dụng đoạn mã sau

self.addEventListener('push', function(event) { 
    console.log('Push message', event); 
    var title = 'Push message'; 
    event.waitUntil(
    self.registration.showNotification(title, { 
     body: 'The Message', 
     icon: 'images/icon.png', 
     tag: 'my-tag' 
    })); 
}); 

Nhưng những gì tôi cần là để hiển thị các thông báo tin nhắn mà tôi đã gửi qua lệnh CURL (Trong ứng dụng chúng tôi có thể thực hiện điều đó một cách dễ dàng)

Tôi nhận được mã sau để nhận thông báo đẩy (g oogle)

self.addEventListener('push', function(event) { 
    // Since there is no payload data with the first version 
    // of push messages, we'll grab some data from 
    // an API and use it to populate a notification 
    event.waitUntil( 
    fetch(SOME_API_ENDPOINT).then(function(response) { 
     if (response.status !== 200) { 
     // Either show a message to the user explaining the error 
     // or enter a generic message and handle the 
     // onnotificationclick event to direct the user to a web page 
     console.log('Looks like there was a problem. Status Code: ' + response.status); 
     throw new Error(); 
     } 

     // Examine the text in the response 
     return response.json().then(function(data) { 
     if (data.error || !data.notification) { 
      console.error('The API returned an error.', data.error); 
      throw new Error(); 
     } 

     var title = data.notification.title; 
     var message = data.notification.message; 
     var icon = data.notification.icon; 
     var notificationTag = data.notification.tag; 

     return self.registration.showNotification(title, { 
      body: message, 
      icon: icon, 
      tag: notificationTag 
     }); 
     }); 
    }).catch(function(err) { 
     console.error('Unable to retrieve data', err); 

     var title = 'An error occurred'; 
     var message = 'We were unable to get the information for this push message'; 
     var icon = URL_TO_DEFAULT_ICON; 
     var notificationTag = 'notification-error'; 
     return self.registration.showNotification(title, { 
      body: message, 
      icon: icon, 
      tag: notificationTag 
     }); 
    }) 
); 
}); 

Nó luôn luôn hiển thị

Chúng tôi không thể để có được những thông tin này nhắn push

gì là SOME_API_ENDPOINT đề cập trong mã đó?
Tôi đã thử với https://android.googleapis.com/gcm/send thay vì điểm cuối và cũng với điểm cuối người dùng trong nhân viên dịch vụ nhưng không hoạt động.

Bất kỳ trợ giúp được nhiều đánh giá

+0

Tôi nghĩ bạn không thể gửi tin nhắn văn bản bằng cách sử dụng thông báo chrome desktop bạn có thể thêm trình xử lý sự kiện để nhấn và sau đó khi bạn nhấn fetch ('url của bạn ở đây') '. bạn có thể kiểm tra mã mẫu tại đây: https://jsfiddle.net/saineshmamgain/j4L2jfns/ – CodeZilla

+0

cũng SOME_API_ENDPOINT ở đây đề xuất một dịch vụ web sẽ trả về hình ảnh tin nhắn, tiêu đề, v.v. Có thể trên máy chủ của bạn. bạn có thể chuyển một số id duy nhất trong url mà bạn có thể xác định trang web trong trường hợp có nhiều trang web. bạn có thể quản lý tin nhắn từ chương trình phụ trợ. – CodeZilla

+0

@Codezilla: Cảm ơn, tôi sẽ kiểm tra xem – Sree

Trả lời

4

Theo như tôi biết, SOME_API_ENDPOINT đề cập là một phụ trợ API được sử dụng để đơn giản hóa truy cập khách hàng với dữ liệu từ các ứng dụng khác.

Như đã thảo luận trong Overview of Cloud Endpoints,

Google Cloud thiết bị đầu cuối bao gồm các công cụ, thư viện và khả năng cho phép bạn tạo ra các API và các thư viện client từ một ứng dụng App Engine, được gọi là một phụ trợ API, để đơn giản hóa khách hàng truy cập dữ liệu từ các ứng dụng khác. Điểm cuối giúp bạn dễ dàng tạo một chương trình phụ trợ web cho khách hàng web và ứng dụng di động như Android hoặc iOS của Apple.

Thông tin thêm về việc sử dụng điểm cuối được thảo luận hoàn toàn trong Best practices for Google Cloud Endpoints chẳng hạn như, cách tạo chương trình phụ trợ của App Engine.

Bạn cũng có thể sử dụng bài đăng SO này - Google endpoints and Google Cloud Messaging làm một trong các tài liệu tham khảo có thể trợ giúp.

+0

Xin chào, Cảm ơn bạn đã trả lời. Điều này là hữu ích nhưng nó là hoàn toàn cho các nhà phát triển Android. và tôi muốn có cùng một chức năng trong máy tính để bàn bằng cách sử dụng nhân viên dịch vụ và cũng vậy trong javascript hoặc jQuery – Sree

Các vấn đề liên quan