我正在尝试使用针对OneSignal服务的api向具有特定标签的用户发送推送通知:https://www.onesignal.com/
我似乎无法正确格式化数组.这是我拥有或想要的东西,但它不起作用:
"tags" => array[{"key": "NotifyLive", "relation": "=", "value": "true"}],
Run Code Online (Sandbox Code Playgroud)
因此,我希望将标记为"NotifyLive"的用户设置为"true".
我相信这可以做到,因为它在这里的文档中显示了它.向下滚动到标签:对象数组示例.我只是无法弄清楚如何编码这一行.
以下是我通过通知发送的字段:
$fields = array(
"app_id" => "example",
"android_sound" => "$num",
"big_picture" => "http://website.com/mypic.jpg",
"tags" => array[{"key": "NotifyLive", "relation": "=", "value": "true"}],// Doesn't work!
"data" => array("autoplay" => "true"),
"contents" => $content,
"headings" => $heading
);
Run Code Online (Sandbox Code Playgroud)
错误: 收到JSON:{"allresponses":"{\"errors \":[\"标签必须是数组.例如,[{\\"key \\":\\"gender \\",\\"relation \\":\\"= \\",\\"value \\":\\"male\\ "}] \"]}"}
该团队拥有惊人的支持,但我现在需要在工作时间之外得到答案.感谢您的任何见解.
我在Cordova应用程序中使用OneSignal API进行推送通知.我的android正在接收通知,但iPhone不是,我收到这封电子邮件:
亲爱的开发者,
我们发现您最近交付的"----"存在一个或多个问题.您的投放成功,但您可能希望在下次投放时更正以下问题:
缺少推送通知权利 - 您的应用程序包含Apple推送通知服务的API,但应用程序签名中缺少aps-environment权利.要解决此问题,请确保在Provisioning Portal中为推送通知启用了App ID.然后,使用包含aps-environment权利的分发配置文件为您的应用签名.这将创建正确的签名,您可以重新提交您的应用程序.有关详细信息,请参阅"本地和推送通知编程指南"中的"供应和开发".如果您的应用不使用Apple推送通知服务,则无需执行任何操作.您可以从将来的提交中删除API以停止此警告.如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息.
纠正问题后,您可以使用Xcode或Application Loader将新二进制文件上传到iTunes Connect.
问候,
App Store团队
我的应用程序ID已启用推送通知,我真的不明白为什么它不起作用.
我为One Signal Push通知创建了演示应用程序.它在模拟器上工作正常,但在真实设备上进行测试时.当应用程序关闭没有收到推送通知时有一个问题.
实现代码如下:
TestDemo.java文件
public class TestDemo extends Application {
@Override
public void onCreate() {
super.onCreate();
OneSignal.setLogLevel(OneSignal.LOG_LEVEL.DEBUG, OneSignal.LOG_LEVEL.WARN);
OneSignal.startInit(this)
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.autoPromptLocation(true)
.init();
}
private class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
@Override
public void notificationOpened(OSNotificationOpenResult result) {
OSNotificationAction.ActionType actionType = result.action.type;
JSONObject data = result.notification.payload.additionalData;
String customKey;
if (data != null) {
customKey = data.optString("customkey", null);
if (customKey != null)
Log.i("OneSignalExample", "customkey set with value: " + customKey);
}
if (actionType == OSNotificationAction.ActionType.ActionTaken)
Log.i("OneSignalExample", "Button pressed with id: " + …Run Code Online (Sandbox Code Playgroud) 我正在使用信号来推送通知,它工作正常但我遇到了"接收通知"的问题,因为我想在收到通知时采取行动.
这是我的代码,我按照文档但我什么也没得到.这是问题所在?
public class MyApplication extends Application {
static Context context;
@Override public void onCreate() {
super.onCreate();
context = getApplicationContext();
OneSignal.startInit(this)
.autoPromptLocation(true)
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.setNotificationReceivedHandler(new ExampleNotificationReceivedHandler())
.init();
}
private class ExampleNotificationReceivedHandler implements OneSignal.NotificationReceivedHandler {
@Override
public void notificationReceived(OSNotification notification) {
Log.d("OneSignalExample", "notificationReceived!!!!!!");
}
}
private class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
@Override
public void notificationOpened(OSNotificationOpenResult openedResult) {
Log.d("OneSignalExample", "notificationOpened!!!!!!");
}
}
}
Run Code Online (Sandbox Code Playgroud) 如何在节点js中创建推送通知时包含小图标和大图标url,我知道我们需要在发送推送通知时发送图像url,我需要节点js中的代码示例..我有这个代码..
sendNotificationToSpecific =function (token,messages) {
var sendNotification = function (data) {
var headers = {
"Content-Type": "application/json; charset=utf-8",
"Authorization": "Basic MDNlMTNjYWMTgy"
};
var options = {
host: "onesignal.com",
port: 443,
path: "/api/v1/notifications",
method: "POST",
headers: headers
};
var https = require('https');
var req = https.request(options, function (res) {
res.on('data', function (data) {
console.log("Response:");
console.log(JSON.parse(data));
});
});
req.on('error', function (e) {
console.log("ERROR:");
console.log(e);
});
req.write(JSON.stringify(data));
req.end();
};
var message = {
app_id: "awer342-d744-4787-b59a-f55c6215c491",
contents: {"en": messages},
include_player_ids: [token],
};
sendNotification(message);
};
Run Code Online (Sandbox Code Playgroud) 我通过使用此方法收到通知OneSignal,但我想在单击通知时打开该应用程序
private static class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
@Override
public void notificationOpened(String message, JSONObject additionalData, boolean isActive) {
try {
if (additionalData != null) {
if (additionalData.has("actionSelected"))
Log.d("OneSignalExample", "OneSignal notification button with id " + additionalData.getString("actionSelected") + " pressed");
Log.d("OneSignalExample", "Full additionalData:\n" + additionalData.toString());
}
} catch (Throwable t) {
t.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,并试图找出当其他用户执行特定操作时如何通知特定用户.我试图避免设置我自己的后端服务器,因为我相信我想做的事情可以通过OneSignal/Firebase完成.
我还没有尝试过,但我想每个用户我都可以获得他们自己的OneSignal player_id(基本上是OneSignal device_id),将其上传到我的firebase数据库,然后当我想发送推送通知时我只需拉动来自firebase的用户的player_id,然后使用它来创建OneSignals 发送到特定设备的通知,其中使用player_ids不需要API Auth Key.
虽然在查看文档之后我不确定用户如何找到(因此他们可以上传到firebase)他们的player_id,所以如果有人能指出我朝这个方向,那将是值得赞赏的.
通过阅读其他问题,似乎这会起作用.我只是想看看这种方法是否存在任何潜在的问题,或者是否有任何更安全或更简单的方法.
push-notification firebase swift onesignal firebase-realtime-database
也许有人知道在使用 OneSignal 接收通知时如何获取设备令牌?
我有一个在laravel中开发的后台,允许插入android和ios app获得的数据.
现在我需要实施onsignal通知,例如,当在后台插入新产品时,app用户会收到通知.
我设置了我的信号通知并在我的laravel项目中安装此软件包:https://github.com/laravel-notification-channels/onesignal.我设置OneSignal App ID和REST API Key太.
之后,我创建了一个新的控制器,并将示例代码放在包链接中.控制器:
use Illuminate\Http\Request;
use NotificationChannels\OneSignal\OneSignalChannel;
use NotificationChannels\OneSignal\OneSignalMessage;
use NotificationChannels\OneSignal\OneSignalWebButton;
use Illuminate\Notifications\Notification;
class NotificationsController extends Controller
{
public function via($notifiable)
{
return [OneSignalChannel::class];
}
public function toOneSignal($notifiable)
{
return OneSignalMessage::create()
->subject("Your {$notifiable->service} account was approved!")
->body("Click here to see details.")
->url('http://onesignal.com')
->webButton(
OneSignalWebButton::create('link-1')
->text('Click here')
->icon('https://upload.wikimedia.org/wikipedia/commons/4/4f/Laravel_logo.png')
->url('http://laravel.com')
);
}
}
Run Code Online (Sandbox Code Playgroud)
但现在我不知道如何使用它.例如,如何在添加新产品时发送通知?我需要设置路线?
如果不解释我的问题,请告诉我.
谢谢
最近发现了 AWS 并且我做得很好,今天我想向我的 iPhone X 发送一个测试通知。我正在尝试在我的数据库更新时这样做,使用 dynamoDB 触发器蓝图。
在仪表板上发送的定期通知有效
这是我到目前为止所尝试的,我既没有在 CloudWatch 上获得代表控制台日志,也没有出现错误。
console.log('Loading function');
const async = require('async');
const https = require('https');
exports.handler = async (event, context) => {
console.log('Received event:', JSON.stringify(event, null, 2));
const name = "35b83a10-9f46-4c2c-95e1-22c6d40005a8";
var message = {
app_id: "appid",
contents: {"en": "Your order has arrived at your doorstep"},
include_player_ids: ["14894201-64f7-486a-b65e-6beedf5880f1",name,"8e0f21fa-9a5a-4ae7-a9a6-ca1f24294b86"]
};
sendNotification(message);
console.log("Activation change detected. message sent");
return `Successfully processed ${event.Records.length} records.`;
};
var sendNotification = function(data) {
var headers = {
"Content-Type": "application/json; charset=utf-8", …Run Code Online (Sandbox Code Playgroud)