
One Signal
https://onesignal.com/
コントロールパネルのドキュメント
https://documentation.onesignal.com/docs/dashboard
WEB Push SDKのドキュメント
https://documentation.onesignal.com/docs/web-push-sdk
APIのドキュメント
https://documentation.onesignal.com/reference#create-notification
これほど丁寧なドキュメントには滅多に出会えないだろうってくらい、
OneSignalのドキュメントは素晴らしい!
APIコードなんて各言語の基本部分の完成形が記載されていて、素直に嬉しいです
アプリケーション名
プッシュ通知アプリケーションを導入するプラットフォームの選択
アカウント作成
ログインはメールアドレスもしくはFB、Github、Googleアカウントで可能アプリケーション作成
Add a new appアプリケーション名
Select one platform
プッシュ通知アプリケーションを導入するプラットフォームの選択
iPhoneアプリならならAplle IOS、WEBならWebsite Pussh
Configure Platform
Configure Platform
※Website Pusshを選択した場合
Site URL:ウェブサイトのURL
Default Notification Icon URL:アイコンのURL
My site is not fully HTTPS:非HTTPならチェックSite URL:ウェブサイトのURL
Default Notification Icon URL:アイコンのURL
※プラットフォーム設定は選択したものが初期状態でアクティブに設定されるだけで、ダッシュボード「App Settings」から全て追加設定が可能
Select SDK Install SDK
SDKの種類の選択、Website Pussh、WordPress
※ApiIDを取得するだけで同一アプリケーションで動くのか、アプリケーションを作成時に別にしなければいけないのかは不明
ApiIDが表示され(いつでも見れる)「Done」完了なのだが、ユーザーを確認して1人以上いないとこの部分は完了出来ない
アプリケーションは作成されダッシュボードは使えます
ApiIDとSOKを使ってテスト実装、自分で登録してから完了することになるかと
SDKセットアップ(Webプッシュ)
WEB Push セットアップのドキュメントに沿って必要なファイルを設置ドキュメントから必要なファイルをダウンロードします
manifest.json
OneSignalSDKWorker.js
OneSignalSDKUpdaterWorker.js
ファイルパスを指定すれば好きな場所にアップロードしても使えますが、ほかのservice worker.js(sw.js)と互換性があるようですのでひとまずはルートトップに配置しても問題なさそうです
push通知を実装するhtml
<head>
<link rel="manifest" href="/manifest.json">
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", {
appId: "YOUR_APP_ID",//API ID
autoRegister: false,//ブラウザの通知許可を自動表示設定
notifyButton: {
enable: true //通知ボタンの有効設定
}
}]);
</script>
</head>
ドキュメントのままですAPI_IDを変更するだけで動きます
OneSignalSDKWorker.jsがルートディレクトリとは別の場所に置いた場合はpathで場所を指定します
...
appId: "xxx",
path:"URL",
...
Push通知SDK設定パラメータ
ほかパラメータも同様に追記していけます記述のベースサンプル
<head>
<link rel="manifest" href="/manifest.json">
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", {
appId: "YOUR_APP_ID",//API ID
autoRegister: false,//ブラウザの通知許可を自動表示設定
notifyButton: {
enable: true //通知ボタンの有効設定
},
promptOptions:{
showCredit;true
},
welcomeNotification: {
disable: false;
title:;"ウェルカム",
message:"ようこそ"
},
notifyButton:{
....
....
}
}]);
</script>
</head>
OneSignal.push([int])
プッシュ通知のデフォルト設定を指定できます優先度はpush([int])>ダッシュボードでの設定
promptOptionsパラメータ
初期化時に基本パラメータを指定するようです、未記入自はデフォルトが反映
welcomeNotificationパラメータ
ウェルカムメッセージの有無やタイトル、本文を編集します
notifyButtonパラメータ
Subscription Bellの挙動などを編集します

OneSignal.push()
様々な処理や情報を実行・取得できますOneSignal.getUserId()
ユーザーIDの取得
OneSignal.push(function() {
/* These examples are all valid */
OneSignal.getUserId(function(userId) {
console.log("OneSignal User ID:", userId);
});
OneSignal.getUserId().then(function(userId) {
console.log("OneSignal User ID:", userId);
});
});
OneSignal.registerForPushNotifications()
登録ボタンの表示
OneSignal.getNotificationPermission()
ブラウザの通知パーミッションの取得
OneSignal.isPushNotificationsSupported()
ブラウザがWEB pushに対応しているか取得
OneSignal.isPushNotificationsEnabled()
プッシュ通知が正常に通ったユーザーかどうか取得できる?
subscribed()
登録しているユーザーかどうかで分岐
などなどドキュメントみた方が早いですね
APIを使ったコンテンツでユーザーの設定などで送信を分ける場合に必要なのが「ユーザーID」かな思います
(キャッシュに設定でAPIでの送信時にタグやフラグパラメータを利用すればそれも普通に可能そうですが)
続けてAPIを使った送信についても記事にしておきたいと思います
0 件のコメント :
コメントを投稿