2016-09-07 15 views
11

Przygotowałem wszystko, co konieczne dla powiadomień wypychanych opisane here.Nowe jonowe znaczniki rejestruj ± ce rejestrację push ™

ja rejestracji urządzenia na starcie jak:

// register for pushio 
    $ionicPush.register().then(function(t) { 
     return $ionicPush.saveToken(t, {ignore_user:true}); 
    }).then(function(t) { 
     console.log('Token saved:', t.token); 
    }); 

Token urządzenie zalogowanego "Reklamowe zapisane: xxxxthetokenxxxx".

Teraz wysyłam push z CURL i panelu nawigacyjnego Ionic.io. Status (zaznaczony przy pomocy CURL) komunikatu wynosi 200 i nie ma błędów. Wysłano powiadomienie push:

{"meta": {"request_id": "8d9c69ce-b66c-4002-8cb3-f91c57505b0f", "version": "2.0.0-beta.0", "status": 200}, "data": []} 

Ale moje urządzenie nie otrzymuje powiadomienia. Myślę, że wynika to z funkcji saveToken(). Gdzie jest saveToken() zapisywanie tokena?

Czy ktoś ma pojęcia, jak rozwiązać ten problem?

UPDATE: jestem przy użyciu tego kodu, aby wysłać impuls:

<?php $curl = curl_init(); 
$token = "mytoken"; 

curl_setopt_array($curl, array(

    CURLOPT_URL => "https://api.ionic.io/push/notifications", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "POST", 
    CURLOPT_POSTFIELDS => ' 

    { 
    "tokens": "bbc654c496abc2dc42a40941ac944f0a8aeb0d5b227d523e335dbd51b71ed646", 
    "profile": "getto", 
    "notification": { 
     "message": "Hello World!" 
    } 
    }', 
    CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer $token", 
    "Content-Type: application/json" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} ?> 

EDIT: Najdziwniejsze jest to, że na Androidzie token urządzenie nie jest zarejestrowany.

+0

Nie musisz zapisywać tokena na urządzeniu, musisz przekazać to do API. –

+1

Zadzwonię do $ ionicPush.saveToken(). To zapisuje token do jonowej bazy danych !? Kiedy wysyłam wiadomość z pulpitu nawigacyjnego Ionic.io, ten zapisany token powinien zostać przekazany do interfejsu API używanego przez dashboard ionic.io. Czy mam rację? – m1crdy

+0

Czy muszę samemu zapisać token? Jeśli spróbuję tego na urządzeniu i wyślę powiadomienie do tego tokena, wyświetli się powyższa odpowiedź. Ale wiadomość nie została dostarczona. Mam zaktualizowane pytanie z moim kodem – m1crdy

Odpowiedz

0

Zainicjuj usługę i zarejestruj urządzenie w funkcji uruchamiania modułu. Będziesz potrzebował tokenu urządzenia, który jest zarejestrowany przez użytkownika do wysyłania powiadomienia do użytkownika.

$ionicPush.init({ 
    debug: true, 
    onNotification: function (notification) { 
    console.log('token:', notification.payload); 
    }, 
    onRegister: function (token) { 
    console.log('Device Token:', token); 
    $ionicPush.saveToken(token); // persist the token in the Ionic Platform 
    } 
}); 

$ionicPush.register(); 

Ionic push umożliwia tworzenie ukierunkowanych powiadomień push przez deskę rozdzielczą (ionic.io). Możesz również wysyłać powiadomienia z serwera w poniższym formacie.

curl -X POST -H "Authorization: Bearer API_TOKEN" -H "Content-Type: application/json" -d '{ 
    "tokens": ["DEVICE_TOKEN"], 
     "profile": "PROFILE_TAG", 
     "notification": { 
       "message": "Hello World!" 
     "android": { 
        "title": "Hi User", 
        "message": "An update is available for your App", 
        "payload": { 
         "update": true 
        } 
      } 
    } }' "https://api.ionic.io/push/notifications" 
+0

Zgadza się. Dzięki. Ale gdzie są zapisane tokeny? I jak odzyskać je wewnątrz loków? Czy muszę sam zapisywać token w zewnętrznej bazie danych? – m1crdy

+0

Możesz wysyłać ukierunkowane powiadomienia do użytkowników za pomocą niestandardowych wiadomości dla poszczególnych użytkowników iw dowolnym czasie. Patrz https://docs.ionic.io/services/push/#summary. Jeśli chcesz wykonać którąś z powyższych czynności, musisz zapisać tokeny wszystkich użytkowników na podstawie unikalnych identyfikatorów w dowolnej bazie danych. Ale jeśli Twoim wymaganiem jest tylko wysyłanie powiadomień masowych do wszystkich użytkowników i tylko ręcznie, możesz tworzyć powiadomienia w Pulpicie nawigacyjnym, przechodząc do opcji Naciśnij> Nowe powiadomienie. Zobacz https://docs.ionic.io/services/push/#sending-pushes –