2017-06-06 70 views
1

我正在構建api以在YouTube頻道上上傳視頻。其中一項要求是,無論何時將視頻成功上傳到YouTube服務器,都必須使用Firebase雲消息傳遞將通知發送到ios應用程序包ID。 我已經註冊了我的FCM控制檯應用程序與捆綁ID com.tbox.ygtp 我試圖谷歌如何發送通知給iOS應用,我發現下面的API使用FCM將通知發送到ios應用程序包ID

$url = 'https://fcm.googleapis.com/fcm/send'; 
    $server_key = 'AAAAylThdyA:APA91bGISSU********VTqHJqBnV81B3jfJzAice07E********HHLXTVylMU1OWSHvdyoZMVNlM8t9p9tXH_4OKm********fEOatp_alw9qMlQNT507lLWLt1N_FMHel1JCCWcuQjD'; 

    $fields = array(); 
    //$fields['data'] = $data; 
    $fields['notification'] = array('body'=>$data); 
    if(is_array($target)){ 
     $fields['registration_ids'] = $target; 
    }else{ 
     $fields['to'] = $target; 
    } 
    //header with content_type and api key 
    $headers = array(
     'Content-Type:application/json', 
     'Authorization:key='.$server_key 
    ); 

    $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_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
    $result = curl_exec($ch); 
    if ($result === FALSE) { 
     die('FCM Send Error: ' . curl_error($ch)); 
    } 
    curl_close($ch); 

    return $result; 

這個API通知發送給設備令牌。但是我需要通過應用程序捆綁ID發送通知。 有人可以指導我如何使用FCM將通知發送到應用程序包ID。

回答

0

目前沒有API或參數可用於將消息僅發送到特定的包ID。此選項僅在通過Firebase Notifications Console發送郵件時可用。

作爲解決方法,您可以使用Topic Messaging,通過向用戶訂閱主題(您可以將其命名爲捆綁ID或更簡單的別名),然後只需使用主題名稱將消息發送給用戶。

+1

昨天還可以看到我對類似問題的回答:https://stackoverflow.com/questions/44364394/how-to-send-firebase-message-to-specific-application-in-project/44364798#44364798 –

+0

謝謝Puf。這樣做會更好嗎?(因爲這個想法幾乎相同)? –

+1

我認爲把答案分開是很好的做法。我只是想把它們聯繫起來,因爲正如你所說的那樣解決方案是相似的。 –

相關問題