我在https://developers.google.com/instance-id/reference/server#get_information_about_app_instances找到以下示例 GET 请求:
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=trueAuthorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
Run Code Online (Sandbox Code Playgroud)
该示例中的关键是:AIzaSyZ-1u...0GBYzPu7Udno5aA
。我在哪里可以找到我应该在 GET 请求中使用的密钥?我试图在https://console.developers.google.com/apis/credentials找到它,这就是我看到的:
我尝试使用上图中看到的所有四个键,但我总是从浏览器收到此消息:
{"error":"MissingAuthorization"}
Run Code Online (Sandbox Code Playgroud)
这个错误是指密钥错误还是其他原因?我是否在正确的地方寻找钥匙?谢谢。
编辑1:我正在查看如何检查已订阅了多少主题?,我还尝试使用在 Firebase 控制台的“Cloud Messaing”选项卡下找到的密钥。这是我所看到的:
我也尝试使用上图中的这些键进行 GET 请求,但仍然看到相同的错误:{"error":"MissingAuthorization"}
。
编辑2:我从命令行使用它:
C:\curl>curl -k https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=trueAuthorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{"error":"MissingAuthorization"}
C:\curl>
Run Code Online (Sandbox Code Playgroud)
请注意,我如何简单地复制/粘贴在“示例 GET 请求”标题下的https://developers.google.com/instance-id/reference/server#get_information_about_app_instances中找到的内容。我什至没有尝试使用自己的密钥,但我看到了相同的错误:{"error":"MissingAuthorization"}
。这是否意味着问题出在我使用的密钥上?这不是我在 Firebase 控制台中看到的吗?
android push-notification firebase firebase-cloud-messaging android-push-notification
这是关于性能的问题。我可以使用以下代码将大写转换为小写,反之亦然:
从小写到大写:
// Uppercase letters.
class UpperCase {
public static void main(String args[]) {
char ch;
for(int i=0; i < 10; i++) {
ch = (char) ('a' + i);
System.out.print(ch);
// This statement turns off the 6th bit.
ch = (char) ((int) ch & 65503); // ch is now uppercase
System.out.print(ch + " ");
}
}
}
Run Code Online (Sandbox Code Playgroud)
从大写到小写:
// Lowercase letters.
class LowerCase {
public static void main(String args[]) {
char ch;
for(int i=0; i < 10; i++) {
ch …
Run Code Online (Sandbox Code Playgroud) 我在下面使用 username@example.net 来保护隐私,但这发生在真实的域和电子邮件地址上。
在我们发送的大量电子邮件中,DMARC 失败了:
在我的 TXT 记录中,这是我对 DMARC 所拥有的:
_dmarc 14400 IN TXT "v=DMARC1; p=none; rua=mailto:username@example.net; sp=none; aspf=r"
当我去https://mxtoolbox.com验证我的 DMARC 记录时,这就是我得到的:
为什么 DMARC 会失败,即使验证器说它通过了,没有语法错误并且一切正常?请注意 SPF 和 DKIM 如何通过。出于某种我试图理解的原因,问题仅在于 DMARC。
更新 1:我在https://support.google.com/a/answer/2466563?hl=en 上找到了这一段:
对齐模式是指将发件人记录与 SPF 和 DKIM 签名进行比较的精度,这两个可能的值是宽松的或严格的。分别用“r”和“s”表示。简而言之,relaxed 允许部分匹配,例如给定域的子域,而 strict 需要完全匹配。
请注意我_dmarc 14400 IN TXT "v=DMARC1; p=none; rua=mailto:username@example.net; sp=none; aspf=r"
如何尝试使用轻松模式。
在Urban Airship中,当我编写通知时,可以通过搜索Urban Airship channel_id
(设备ID)来定位特定用户:
我从Urban Airship发送了上面显示的推送通知,并成功收到。现在,我想做同样的事情,将推送通知发送到特定设备,但是现在使用Firebase控制台。问题是在Firebase中,在我需要指定的步骤中target
,它只允许我选择User segment
或topic
。我期望看到第三个选项:(Target specific users
用于向一个或多个特定GCM / FCM设备令牌ID发送通知。因此,我的替代方法是将GCM / FCM设备令牌ID添加到topic
然后将推送通知发送到该主题,这是我之前成功完成的。尽管如此,这将是一种解决方法,而不是我更喜欢这样做的方式。是否可以从Firebase控制台向特定用户发送推送通知(通过定义目标GCM / FCM设备令牌ID)?谢谢。
更新1:了解Firebase控制台(https://console.firebase.google.com/)仅如何显示User segment
并显示Topic
为Target
:
firebase google-cloud-messaging firebase-cloud-messaging firebase-console
这是我尝试过的:
Jaimes-MacBook-Pro:platform-tools jaimemontoya$ pwd
/Users/jaimemontoya/Library/Android/sdk/platform-tools
Jaimes-MacBook-Pro:platform-tools jaimemontoya$ ls
NOTICE.txt deployagent.jar etc1tool make_f2fs sload_f2fs
adb deploypatchgenerator.jar fastboot mke2fs source.properties
api dmtracedump hprof-conv mke2fs.conf sqlite3
deployagent e2fsdroid lib64 package.xml systrace
Jaimes-MacBook-Pro:platform-tools jaimemontoya$ adb shell setprop log.tag.FA VERBOSE
bash: adb: command not found
Jaimes-MacBook-Pro:platform-tools jaimemontoya$
Run Code Online (Sandbox Code Playgroud)
我知道我明白了bash: adb: command not found
,但我不确定我是否使用了正确的路径(/Users/jaimemontoya/Library/Android/sdk/platform-tools
)。请注意,当我使用时,ls
我会看到adb
列出的信息。那不是一个目录。它是一个文件,因为当我使用时,ls -al
我在权限中看到了这个:-rwxr-xr-x
。这意味着adb
是一个文件,而不是一个文件夹。否则,应该是drwxr-xr-x
,但我看到的是-rwxr-xr-x
。有什么提示可以帮助我确认我是否已adb
在 macOS 上安装,以及如何从命令行调用它?
更新1:
按照 Ashok Chaudhari 在评论中的建议,我从 Android Studio 转到“工具”>“SDK 管理器”>“外观和行为”>“系统设置”>“Android SDK”,然后我看到 …
这就是我在做的事情:
C:\Users\username\Dropbox\myproject\androidapp\build>git branch -D master
Run Code Online (Sandbox Code Playgroud)
错误:找不到分支'master'.
C:\Users\username\Dropbox\myproject\androidapp\build>git checkout -b master
Switched to a new branch 'master'
C:\Users\username\Dropbox\myproject\androidapp\build>git branch
C:\Users\username\Dropbox\myproject\androidapp\build>git branch -a
C:\Users\username\Dropbox\myproject\androidapp\build>
Run Code Online (Sandbox Code Playgroud)
我看到了这样的信息:切换到一个新的分支'master'.为什么新分支'master'不存在,显然我能够切换到分支'master'?
当我使用 Firebase 控制台时,通过激活“高级选项”下的“声音”,一切都很完美,正如最佳答案 Mouad Abdelghafour AitAli 在Firebase Push notification is not Playing sound while app is in back 的接受答案中所解释的那样。当我使用 cURL 向端点发出请求时https://fcm.googleapis.com/fcm/send
,我收到通知,唯一的问题是通知不播放声音。这就是我从命令提示符发送通知的方式:
C:\curl>curl -k -X POST --header "Authorization: key=<My authorization key>" --header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"<Token of device that receives the notification>\",\"notification\":{\"body\":\"Yellow\"},\"priority\":10,\"sound\":\"default\"}"
{"multicast_id":4910170660116070247,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1512975815064180%efad4c69efad4c69"}]}
Run Code Online (Sandbox Code Playgroud)
请注意我如何使用\"sound\":\"default\"
,但通知仍然没有播放声音。正如我提到的,它可以在 Firebase 控制台上运行,所以我试图理解为什么它不能从命令行使用 cURL 运行。谢谢。
android curl firebase firebase-cloud-messaging android-push-notification