2009-07-10 35 views
5

Tôi nhận thấy rằng Growl cho phép khả năng thông báo Growl từ một trang web. Có ai đã thử thực hiện điều này không?Thông báo Growl từ Máy chủ Web

Nếu có, biểu mẫu sẽ mất gì? Bạn có triển khai hỗ trợ đa người dùng không? Và, bạn có thể cung cấp bất kỳ ví dụ mã (C# hoặc Objective-C sẽ thích hợp hơn nhưng tôi không phải là fussed)?

Giàu

Trả lời

4

GNTP (Growl Mạng Transport Protocol) bindings cho các ngôn ngữ khác nhau, một list of bindings can be found here - đây cho phép bạn gửi thông báo từ, chẳng hạn, một kịch bản PHP.

Tôi không tin hệ thống UDP của Growl trực tiếp, mà là viết một máy chủ nhận và lưu trữ thông báo (có thể là một ứng dụng web nhỏ) và một tập lệnh cục bộ thường lấy bất kỳ tin nhắn mới nào qua HTTP và Grow chúng. Không phức tạp chút nào, sẽ đáng tin cậy hơn UDP và có thể xếp hàng các tin nhắn khi máy Growl'ing của bạn bị tắt nguồn hoặc không thể truy cập được. Không nên mất nhiều thời gian để thực hiện

Về cơ bản, server.php trong pseudo-PHP (mà có thể sử dụng Net_Growl):

<?php 
if($_GET['action'] == "store"){ 
    $title = $_POST['title']; 
    $message = $_POST['message']; 
    $password = sha1($_POST['password']); 
    if($password == "..."){ 
     store_in_database(sanitise($title), sanitise($message); 
    } 
} else { 
    print(json_encode(get_notifications_from_database())); 
    mark_notifications_as_read(); 
} 
?> 

client.py trong pseudo-Python (mà có thể sử dụng gntp):

while 1: 
    time.sleep(60): 
    data = urllib.urlopen("http://myserver.com/server.php?action=get&password=blah").read() 
    for line in data: 
     notif = json.decode(line) 
     growl.alert(notif['title'], notif['message']) 
Các vấn đề liên quan