{"id":3613,"date":"2021-01-22T17:39:46","date_gmt":"2021-01-22T08:39:46","guid":{"rendered":"https:\/\/androiphone.uvs.jp\/?p=3613"},"modified":"2021-03-03T11:08:14","modified_gmt":"2021-03-03T02:08:14","slug":"php-php%e3%81%a7%e3%80%8cfcm-http-v1-api%e3%80%8d%e3%82%92%e5%8f%a9%e3%81%84%e3%81%a6%e9%80%9a%e7%9f%a5%e3%82%92%e9%80%81%e3%82%8b","status":"publish","type":"post","link":"https:\/\/androiphone.uvs.jp\/?p=3613","title":{"rendered":"[PHP] PHP\u3067\u300cFCM HTTP v1 API\u300d\u3092\u53e9\u3044\u3066\u901a\u77e5\u3092\u9001\u308b"},"content":{"rendered":"<hr \/>\n<p><span style=\"color: #ff6600;\"><strong><span style=\"font-size: 24pt;\">FCM\u304b\u3089\u901a\u77e5\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u308b<\/span><\/strong><\/span><\/p>\n<p>\u4ee5\u524d\u306e\u8a18\u4e8b\u3067Android\u304b\u3089\u901a\u77e5(Notification)\u3092\u9001\u308b\u5b9f\u88c5\u3092\u3057\u307e\u3057\u305f\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-internal-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/androiphone.uvs.jp\/?p=3595\" data-lkc-id=\"665\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=androiphone.uvs.jp\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">ANDROIPHONE<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/image00-1-150x150.png\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">[Android] Firebase Cloud Messaging(FCM)\u3067push\u901a\u77e5\u3092\u5b9f\u88c5\u3059\u308b<\/div><div class=\"lkc-date\">&#x1f552;&#xfe0f;2021\u5e741\u670822\u65e5<\/div><div class=\"lkc-excerpt\">Push\u901a\u77e5\u3092\u5b9f\u88c5\u3057\u305f\u304f\u306a\u308b\u7d50\u69cb\u306a\u30b5\u30a4\u30c8\u3067\u89e3\u8aac\u3055\u308c\u3066\u304a\u308a\u624b\u9806\u901a\u308a\u306b\u884c\u3048\u3070\u7279\u306b\u554f\u984c\u3082\u306a\u304f\u5b9f\u88c5\u3067\u304d\u305d\u3046\u3060\u3063\u305f\u3051\u3069\u3001\u8272\u3005\u3068\u8e93\u3044\u305f\u3068\u3053\u308d\u3082\u3042\u3063\u305f\u306e\u3067\u5fd8\u5099\u9332\u7684\u306a\u30a2\u30ec\u3067\u3059\u3002\u53c2\u8003\u306b\u3057\u305f\u30b5\u30a4\u30c8\u306f\u4ee5\u4e0b\u306e\u30b5\u30a4\u30c8\u30022019-2020\u5e74\u3068\u65b0\u3057\u3044\u304b\u3063\u305f\u305f\u3081\u53c2\u8003\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u5b9f\u88c5\u306f@yuppejp\u3055\u3093\u306e\u307b\u3046\u3067\u884c\u3044\u307e\u3057\u305f\u3002\u3068FCM\u306e\u516c\u5f0f\u306e\u5b9f\u88c5\u65b9\u6cd5\u3067\u3059\u307e\u305a\u306f\u30c6\u30b9\u30c8\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4e00\u756a\u4e0a\u306e\u30b5\u30a4\u30c8\u306e\u901a\u308a\u306b\u5b9f\u88c5\u3057\u307e\u3057\u305f\u3002Firebase\u306e\u30b5\u30a4\u30c8\u306e\u901a\u77e5\u306e\u4f5c\u6210\u3088\u308a\u901a\u77e5\u3092\u4f5c\u3063\u3066\u9001\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u3057\u305f\u3002\u6700\u5f8c\u306e\u300ccurl\u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6295\u3052\u308b\u300d\u3067POST\u3067\u306e\u3084\u308a\u65b9\u304c\u66f8\u3044\u3066\u3042\u308a\u307e\u3059\u3002\u3053...<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>\u5b9f\u969b\u306e\u904b\u7528\u306f\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u4efb\u610f\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u901a\u77e5\u3092\u751f\u6210\u3057\u3066FCM\u306b\u6295\u3052\u308b\u3068\u3044\u3046\u3053\u3068\u306b\u306a\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u3053\u306eFCM\u3092\u6295\u3052\u308b\u30d7\u30ed\u30c8\u30b3\u30eb\u304c\u300cFCM HTTP v1 API\u300d\u3068\u3044\u3046\u308f\u3051\u3067\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/firebase.google.com\/docs\/cloud-messaging\/server?hl=ja\" data-lkc-id=\"666\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=firebase.google.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Firebase<\/div><div class=\"lkc-share\"> <div class=\"lkc-sns-hb\">2 Users<\/div> <div class=\"lkc-sns-po\">10 Pockets<\/div><\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"https:\/\/s.wordpress.com\/mshots\/v1\/https%3A%2F%2Ffirebase.google.com%2Fdocs%2Fcloud-messaging%2Fserver%3Fhl%3Dja?w=100\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">\u30b5\u30fc\u30d0\u30fc\u74b0\u5883\u3068 FCM \u00a0|\u00a0 Firebase Documentation<\/div><div class=\"lkc-url\" title=\"https:\/\/firebase.google.com\/docs\/cloud-messaging\/server?hl=ja\">https:\/\/firebase.google.com\/docs\/cloud-messaging\/server?hl=ja<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>\u73fe\u5728FCM\u304c\u63d0\u4f9b\u3057\u3066\u3044\u308b\u30d7\u30ed\u30c8\u30b3\u30eb\u306f<\/p>\n<ol>\n<li><strong><span style=\"font-size: 14pt; color: #0000ff;\">FCM HTTP v1 API<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt; color: #0000ff;\">\u30ec\u30ac\u30b7\u30fc HTTP \u30d7\u30ed\u30c8\u30b3\u30eb<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt; color: #0000ff;\">\u30ec\u30ac\u30b7\u30fc XMPP \u30d7\u30ed\u30c8\u30b3\u30eb<\/span><\/strong><\/li>\n<\/ol>\n<p>\u306e3\u3064\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u63a8\u5968\u306f1\u3067\u3059\u30022\u30683\u306f\u30ec\u30ac\u30b7\u30fc\u3068\u540d\u524d\u304c\u3064\u3044\u3066\u3044\u308b\u901a\u308a\u73fe\u5728\u306f\u975e\u63a8\u5968\u3067\u3059\u304c\u3001\u30d6\u30ed\u30b0\u306a\u3069\u306e\u5b9f\u88c5\u4f8b\u3067\u306f2\u304c\u591a\u3044\u3067\u3059\u3002OAuth 2.0 \u30a2\u30af\u30bb\u30b9 \u30c8\u30fc\u30af\u30f3\u751f\u6210\u3092\u5229\u7528\u305b\u305a\u3001\u56fa\u5b9a\u306e\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3059\u308c\u3070\u6bd4\u8f03\u7684\u7c21\u5358\u306b\u5b9f\u88c5\u3067\u304d\u308b\u306e\u3067\u591a\u3044\u306e\u304b\u306a\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u3057\u304b\u3057\u4eca\u5f8c\u306f1\u306e\u307f\u306b\u306a\u3063\u3066\u3044\u304f\u306e\u306f\u9593\u9055\u3044\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u306e\u3067\u5b9f\u88c5\u3092\u30c8\u30e9\u30a4\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<hr \/>\n<p><span style=\"color: #ff6600;\"><strong><span style=\"font-size: 24pt;\">PHP\u3067FCM HTTP v1 API\u3092\u53e9\u304d\u305f\u3044<\/span><\/strong><\/span><\/p>\n<p>FCM HTTP v1 API\u3092\u5229\u7528\u3059\u308b\u969b\u3001Google\u304c\u516c\u5f0f\u306b\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u8a00\u8a9e(\u4f8b\u793a\u3055\u308c\u3066\u3044\u308b\u8a00\u8a9e)\u3068\u3057\u3066<\/p>\n<ul>\n<li><strong><span style=\"font-size: 14pt;\">Node.js<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">Java<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">Python<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">Go<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">C#<\/span><\/strong><\/li>\n<\/ul>\n<p>\u3068\u306a\u3063\u3066\u3044\u3066\u3001OAuth 2.0 \u30a2\u30af\u30bb\u30b9 \u30c8\u30fc\u30af\u30f3\u751f\u6210\u306b\u306f<\/p>\n<ul>\n<li><strong><span style=\"font-size: 14pt;\">Node.js<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">Java<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">Python<\/span><\/strong><\/li>\n<\/ul>\n<p>\u3057\u304b\u306a\u3044\u3088\u3046\u3067\u3059\u3002\u5229\u7528\u3057\u3066\u3044\u308b\u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc\u306e\u5229\u7528\u53ef\u80fd\u8a00\u8a9e\u306f<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/www.value-server.com\/spec\/\" data-lkc-id=\"667\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=www.value-server.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">\u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc  VALUE-SERVER.COM<\/div><div class=\"lkc-share\"> <div class=\"lkc-sns-hb\">10 Users<\/div> <div class=\"lkc-sns-po\">40 Pockets<\/div><\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/androiphone.uvs.jp\/wp-content\/uploads\/pz-linkcard\/cache\/b33023d4b72cd4e090d3306f78445489ace809aded812076ba9fe963fafafa02.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">\u6599\u91d1\u30fb\u30d7\u30e9\u30f3 | VALUE SERVER \u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc<\/div><div class=\"lkc-url\" title=\"https:\/\/www.value-server.com\/spec\/\">https:\/\/www.value-server.com\/spec\/<\/div><div class=\"lkc-excerpt\">\u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc\u306e\u4ed5\u69d8\u8a73\u7d30\u3084\u3054\u5229\u7528\u6599\u91d1\u306e\u30da\u30fc\u30b8\u3067\u3059\u3002\u7528\u9014\u306b\u5408\u308f\u305b\u305f\u30a8\u30b3\u3001\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u3001\u30d3\u30b8\u30cd\u30b9\u306e3\u3064\u306e\u30d7\u30e9\u30f3\u3092\u3054\u7528\u610f\u3057\u307e\u3057\u305f\u3002<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>\u3068\u306a\u3063\u3066\u304a\u308a\u3001\u901a\u5e38\u3067\u3042\u308c\u3070Python\u3092\u4f7f\u3048\u3070\u3044\u3044\u306e\u304b\u306a\u3068\u601d\u3044\u307e\u3057\u305f\u304c\u2026<\/p>\n<blockquote><p><strong><span style=\"font-size: 18pt; color: #ff0000;\">\u30b5\u30fc\u30d0\u30fc\u3067Python\u3092\u4f7f\u3063\u305f\u3053\u3068\u304c\u306a\u3044\u306e\u3067PHP\u3067\u30b4\u30ea\u62bc\u3057\u3057\u305f\u3044\uff01\uff01<\/span><\/strong><\/p><\/blockquote>\n<p>\u3068\u3044\u3046\u7406\u7531\u304b\u3089PHP\u3067\u5b9f\u88c5\u3057\u3066\u307f\u307e\u3059(\u9700\u8981\u3082\u591a\u305d\u3046\u3060\u3057)\u3002PHP\u306e\u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u306f\u63a2\u3057\u3066\u3082\u306a\u3044\u306e\u3067\u3001\u975e\u516c\u5f0f\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u3066\u306e\u5b9f\u88c5\u306b\u306a\u308b\u308f\u3051\u3067\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/github.com\/googleapis\/google-api-php-client\" data-lkc-id=\"668\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=github.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">GitHub<\/div><div class=\"lkc-share\"> <div class=\"lkc-sns-hb\">40 Users<\/div> <div class=\"lkc-sns-po\">632 Pockets<\/div><\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/androiphone.uvs.jp\/wp-content\/uploads\/pz-linkcard\/cache\/b7f3fbabf8fe04f94775b12d2b32ab03d82b7fbe0f1faf9987d06ae82e4c1f3d.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">GitHub - googleapis\/google-api-php-client: A PHP client library for accessing...<\/div><div class=\"lkc-url\" title=\"https:\/\/github.com\/googleapis\/google-api-php-client\">https:\/\/github.com\/googleapis\/google-api-php-client<\/div><div class=\"lkc-excerpt\">A PHP client library for accessing Google APIs. Contribute to googleapis\/google-api-php-client development by creating an account on GitHub.<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>\u30b0\u30b0\u3063\u3066\u307f\u308b\u3068google-api-php-client\u3092\u7528\u3044\u305f\u5b9f\u88c5\u4f8b\u304c\u6d77\u5916\u3092\u4e2d\u5fc3\u306b\u591a\u304f\u516c\u958b\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u306e\u3067\u3053\u308c\u3092\u4f7f\u3063\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<hr \/>\n<p><span style=\"color: #ff6600;\"><strong><span style=\"font-size: 24pt;\">\u30b5\u30fc\u30d0\u30fc\u306bgoogle-api-php-client\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span><\/strong><\/span><\/p>\n<p>\u3053\u306e\u8fba\u306f\u4eba\u306b\u3088\u3063\u3066\u74b0\u5883\u304c\u9055\u3046\u306e\u3067\u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u306e\u4ed5\u69d8\u3068\u65b9\u6cd5\u3092\u3088\u304f\u8aad\u3093\u3067\u9032\u3081\u307e\u3059\u3002\u809d\u306b\u306a\u308b\u90e8\u5206\u306f<\/p>\n<ul>\n<li><span style=\"font-size: 14pt; color: #0000ff;\"><strong>SSH\u63a5\u7d9a\u304c\u3067\u304d\u308b(Composer\u3092\u4f7f\u3046\u70ba)<\/strong><\/span><\/li>\n<li><span style=\"font-size: 14pt; color: #0000ff;\"><strong>Composer\u304c\u5229\u7528\u3067\u304d\u308b(google-api-php-client\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u70ba)<\/strong><\/span><\/li>\n<li><span style=\"font-size: 14pt; color: #0000ff;\"><strong>PHP 5.6.0 or higher\u3067\u3042\u308b(google-api-php-client\u3092\u4f7f\u3046\u70ba)<\/strong><\/span><\/li>\n<\/ul>\n<p>\u3042\u305f\u308a\u3068\u304a\u3082\u3044\u307e\u3059\u3002<\/p>\n<p>\u3053\u3053\u304b\u3089\u306f\u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc\u3067\u306e\u65b9\u6cd5\u3092\u8a18\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u524d\u63d0\u3068\u3057\u3066\u300cSSH\u3092\u82e5\u5e72\u3067\u3082\u89e6\u3063\u305f\u3053\u3068\u304c\u3042\u308b\u300d\u300cFTP\u3067\u30d5\u30a1\u30a4\u30eb\u306e\u8ee2\u9001\u304c\u3067\u304d\u308b\u300d\u300cLinux\u3092\u89e6\u3063\u305f\u3053\u3068\u304c\u3042\u308b(vi\u30a8\u30c7\u30a3\u30bf\u306a\u3069)\u300d\u7a0b\u5ea6\u306e\u77e5\u8b58\u306f\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<p>\u63a8\u5968\u3055\u308c\u3066\u308b\u65b9\u6cd5\u3067\u3042\u308b\u300cComposer\u3092\u4f7f\u3063\u3066google-api-php-client\u3092\u30b5\u30fc\u30d0\u30fc\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u300d\u3057\u3066\u3044\u304d\u307e\u3059\u3002Composer\u3068\u306f\u4f9d\u5b58\u3057\u3066\u3044\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4e00\u767a\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u308c\u308b\u4fbf\u5229\u306a\u3082\u306e\u3089\u3057\u3044\u3067\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/qiita.com\/niisan-tokyo\/items\/8cccec88d45f38171c94\" data-lkc-id=\"669\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=qiita.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Qiita<\/div><div class=\"lkc-share\"> <div class=\"lkc-sns-hb\">65 Users<\/div> <div class=\"lkc-sns-po\">157 Pockets<\/div><\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"https:\/\/s.wordpress.com\/mshots\/v1\/https%3A%2F%2Fqiita.com%2Fniisan-tokyo%2Fitems%2F8cccec88d45f38171c94?w=100\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">PHP\u958b\u767a\u3067Composer\u3092\u4f7f\u308f\u306a\u3044\u306a\u3093\u3066\u3042\u308a\u3048\u306a\u3044\uff01\u57fa\u790e\u7de8 - Qiita<\/div><div class=\"lkc-url\" title=\"https:\/\/qiita.com\/niisan-tokyo\/items\/8cccec88d45f38171c94\">https:\/\/qiita.com\/niisan-tokyo\/items\/8cccec88d45f38171c94<\/div><div class=\"lkc-excerpt\">\u4e45\u65b9\u3076\u308a\u306bPHP\u306e\u30ec\u30ac\u30b7\u30fc\u306a\u30b7\u30b9\u30c6\u30e0\u3092\u89e6\u308a\u307e\u3057\u305f\u304c\u3001\u306a\u3093\u3068\u3044\u3046\u304b\u3002\u3002\u3002\u540d\u524d\u7a7a\u9593\u3068composer\u304c\u7121\u3044\u3060\u3051\u3067\u3001\u3053\u3046\u3082\u5927\u5909\u306b\u306a\u308b\u306e\u304b\u3068\u601d\u3044\u307e\u3057\u305f\u306d\u3068\u3044\u3046\u308f\u3051\u3067\u3001\u3082\u306f\u3084\u30c7\u30d5\u30a1\u30af\u30c8\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u3068\u306a\u3063\u305fcomposer\u3092\u4f7f\u7528\u3057\u305f\u958b\u767a\u306b\u3064...<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>Composer\u3092\u4f7f\u3046\u305f\u3081\u306b\u306fSSH\u63a5\u7d9a\u3092\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\u3053\u306e\u8fba\u3092\u53c2\u8003\u306b\u3057\u3066\u63a5\u7d9a\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u30e9\u30ba\u30d1\u30a4\u304c\u3089\u307f\u3067\u4f7f\u3044\u6163\u308c\u305fTeraTerm\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/nprog256.net\/post\/2019\/01\/connect-to-value-server-by-ssh\/\" data-lkc-id=\"670\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=nprog256.net\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">NP \u30e1\u30e2\u30ea\u30a2<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/androiphone.uvs.jp\/wp-content\/uploads\/pz-linkcard\/cache\/3ebe93968df1e1000f9ca257d63999cd36cade8327cd5044a5ffec3608491624.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">[ValueServer] \u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc\u306bSSH\u3067\u63a5\u7d9a\u3092\u3059\u308b\u65b9\u6cd5<\/div><div class=\"lkc-url\" title=\"https:\/\/nprog256.net\/post\/2019\/01\/connect-to-value-server-by-ssh\/\">https:\/\/nprog256.net\/post\/2019\/01\/connect-to-value-server-by-ssh\/<\/div><div class=\"lkc-excerpt\">N\u30d7\u30ed\u30b0\u30e9\u30de(@Nprog128)\u3067\u3059\u3002 \u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc\u3067\u307e\u308b\u3063\u3068\u30d7\u30e9\u30f3\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u6642\u306b\u3001SSH\u63a5\u7d9a\u3059\u308b\u5834\u9762\u304c\u51fa\u3066\u304d\u305f\u306e\u3067\u305d\u306e\u30e1\u30e2\u3067\u3059\u3002 \u6982<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>SSH\u63a5\u7d9a\u304c\u5b8c\u4e86\u3057\u305f\u3089Composer\u4f7f\u3048\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002\u30d0\u30ea\u30e5\u30fc\u30b5\u30fc\u30d0\u30fc\u3067\u306fCLI\u7248\u3067\u5b9f\u884c\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u307f\u305f\u3044\u306a\u306e\u3067\u4e0b\u306e\u30b5\u30a4\u30c8\u3092\u53c2\u8003\u306b\u3057\u3066<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/qiita.com\/owlbeck\/items\/b4a277e358bd210bd720\" data-lkc-id=\"671\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=qiita.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Qiita<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"https:\/\/s.wordpress.com\/mshots\/v1\/https%3A%2F%2Fqiita.com%2Fowlbeck%2Fitems%2Fb4a277e358bd210bd720?w=100\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">\u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u306e\u300cValue Server\u300d\u3067Composer\u3092\u5229\u7528\u3059\u308b\u65b9\u6cd5 - Qiita<\/div><div class=\"lkc-url\" title=\"https:\/\/qiita.com\/owlbeck\/items\/b4a277e358bd210bd720\">https:\/\/qiita.com\/owlbeck\/items\/b4a277e358bd210bd720<\/div><div class=\"lkc-excerpt\">\u6761\u4ef6Value Server \u30a8\u30b3\u30d7\u30e9\u30f3SSH\u3067\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u53ef\u80fd\u3002\u624b\u9806Composer\u306f\u6a19\u6e96\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u304c\u3001\u305d\u306e\u307e\u307e\u5b9f\u884c\u3059\u308b\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u308b\u3002$ composerYou are runnin...<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>.bashrc\u3078\u30a8\u30a4\u30ea\u30a2\u30b9\u3092\u767b\u9332\u3057\u3066\u8d77\u52d5\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u305f\u3002Composer\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306f\u305b\u305a\u306b<\/p>\n<pre class=\"lang:default decode:true\"># .bashrc\r\n\r\n# Source global definitions\r\nif [ -f \/etc\/bashrc ]; then\r\n\t. \/etc\/bashrc\r\nfi\r\n\r\n# User specific aliases and functions\r\n# \u8ffd\u8a18\r\nalias composer='php56cli \/usr\/bin\/composer'<\/pre>\n<p>php\u30825.6\u306e\u307e\u307e\u306b\u3057\u3068\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u305d\u3057\u3066\u4efb\u610f\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067<\/p>\n<blockquote><p>composer require google\/apiclient:&#8221;^2.7&#8243;<\/p><\/blockquote>\n<p>\u3092\u5b9f\u884c\u3057\u305f\u3089\u7121\u4e8b\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5b8c\u4e86\u3067\u304d\u305f\u3088\u3046\u3067\u3059\u3002\u3053\u3053\u307e\u3067\u304d\u308c\u3070\u5f8c\u306f\u3089\u304f\u3061\u3093\u3067\u3059\u3002\u5225\u306a\u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u4eba\u306a\u3069\u306f\u4ed5\u69d8\u3092\u78ba\u8a8d\u3057\u3066\u307f\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<hr \/>\n<p><strong><span style=\"font-size: 24pt; color: #ff6600;\">php\u3067\u5b9f\u969bFCM\u3092\u9001\u3063\u3066\u307f\u308b<\/span><\/strong><\/p>\n<p>\u30d9\u30fc\u30b9\u3068\u306a\u308bsend.php\u306f\u4e0b\u3092\u53c2\u8003\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/gist.github.com\/Repox\/64ac4b3582f8ac42a6a1b41667db7440\" data-lkc-id=\"672\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=gist.github.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Gist<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/androiphone.uvs.jp\/wp-content\/uploads\/pz-linkcard\/cache\/c06702bc93347b4758ee0f700d2ef3455f44374241ddfd9de4e9988dcf444b8e.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Google API PHP Client - Firebase Cloud Messaging Service v1 example<\/div><div class=\"lkc-url\" title=\"https:\/\/gist.github.com\/Repox\/64ac4b3582f8ac42a6a1b41667db7440\">https:\/\/gist.github.com\/Repox\/64ac4b3582f8ac42a6a1b41667db7440<\/div><div class=\"lkc-excerpt\">Google API PHP Client - Firebase Cloud Messaging Service v1 example - send.php<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>\u4f5c\u696d\u5185\u5bb9\u3068\u3057\u3066\u306f<\/p>\n<ol>\n<li><strong><span style=\"font-size: 14pt;\">auth.json\u306e\u53d6\u5f97<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">Firebase project ID\u306e\u78ba\u8a8d<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">$message\u306e\u5185\u5bb9\u306e\u7de8\u96c6<\/span><\/strong><\/li>\n<li><strong><span style=\"font-size: 14pt;\">send.php\u3067\u306e\u30c6\u30b9\u30c8<\/span><\/strong><\/li>\n<\/ol>\n<p>\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>1\u306f\u4e0b\u306e\u300c\u8a8d\u8a3c\u60c5\u5831\u3092\u624b\u52d5\u3067\u63d0\u4f9b\u3059\u308b\u300d\u3092\u53c2\u8003\u306b\u3057\u3066json\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fjson\u30d5\u30a1\u30a4\u30eb\u3092auth.json\u3068\u3057\u307e\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/firebase.google.com\/docs\/cloud-messaging\/migrate-v1?hl=ja#provide-credentials-manually\" data-lkc-id=\"673\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=firebase.google.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Firebase<\/div><div class=\"lkc-share\"> <div class=\"lkc-sns-po\">6 Pockets<\/div><\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"https:\/\/s.wordpress.com\/mshots\/v1\/https%3A%2F%2Ffirebase.google.com%2Fdocs%2Fcloud-messaging%2Fmigrate-v1%3Fhl%3Dja%23provide-credentials-manually?w=100\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">\u4ee5\u524d\u306e HTTP \u304b\u3089 HTTP v1 \u306b\u79fb\u884c\u3059\u308b \u00a0|\u00a0 Firebase Documentation<\/div><div class=\"lkc-url\" title=\"https:\/\/firebase.google.com\/docs\/cloud-messaging\/migrate-v1?hl=ja#provide-credentials-manually\">https:\/\/firebase.google.com\/docs\/cloud-messaging\/migrate-v1?hl=ja#provide-credentials-manually<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>2\u306fFirebase\u3067\u8a72\u5f53\u30a2\u30d7\u30ea\u306e\u8a2d\u5b9a-\u5168\u822c\u304b\u3089\u30d7\u30ed\u30b8\u30a7\u30af\u30c8ID\u304c\u3042\u308b\u306e\u3067\u305d\u308c\u3092\u30e1\u30e2\u3057\u3068\u304d\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/SnapCrab_NoName_2021-1-19_17-53-56_No-00_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3617\" src=\"https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/SnapCrab_NoName_2021-1-19_17-53-56_No-00_1-300x115.png\" alt=\"\" width=\"496\" height=\"190\" srcset=\"https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/SnapCrab_NoName_2021-1-19_17-53-56_No-00_1-300x115.png 300w, https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/SnapCrab_NoName_2021-1-19_17-53-56_No-00_1-1024x391.png 1024w, https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/SnapCrab_NoName_2021-1-19_17-53-56_No-00_1-768x293.png 768w, https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/SnapCrab_NoName_2021-1-19_17-53-56_No-00_1-1536x586.png 1536w, https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/SnapCrab_NoName_2021-1-19_17-53-56_No-00_1-2048x782.png 2048w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/a><\/p>\n<p>send.php\u306e\u66f8\u304d\u63db\u3048\u308b\u3079\u304d\u90e8\u4f4d\u306f\u4e0b\u306e\u3088\u3046\u306a\u611f\u3058\u3067\u3059<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\n\r\n\/**\r\n * This serves as an example of how to use the Google API PHP Client \r\n * with Firebase Cloud Messaging Service.\r\n *\r\n * The client can be found here:\r\n * https:\/\/github.com\/google\/google-api-php-client\r\n *\r\n * At the time of writing this, there's no Service object for the correct \r\n * scope for Firebase Messaging, so here's an example of how this can be\r\n * done with provididing the scope manually.\r\n *\r\n * Info regarding authorization and requests can be found here:\r\n * https:\/\/firebase.google.com\/docs\/cloud-messaging\/server\r\n *\/\r\n\r\nrequire 'vendor\/autoload.php';  \/\/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305fgoogle-api-php-client\u306e\u30d1\u30b9\u306b\u5408\u308f\u305b\u3066\u5909\u66f4\r\n\r\n$client = new Google_Client();\r\n\r\n\/\/ Authentication with the GOOGLE_APPLICATION_CREDENTIALS environment variable\r\n$client-&gt;useApplicationDefaultCredentials(); \r\n\r\n\/\/ Alternatively, provide the JSON authentication file directly.\r\n$client-&gt;setAuthConfig(__DIR__.'\/auth.json'); \/\/ 1\u3067\u53d6\u5f97\u3057\u305fjson\u30d5\u30a1\u30a4\u30eb\u3092\u30b5\u30fc\u30d0\u30fc\u306b\u4e0a\u3052\u3066\u30d1\u30b9\u306b\u5408\u308f\u305b\u3066\u5909\u66f4\r\n\r\n\/\/ Add the scope as a string (multiple scopes can be provided as an array)\r\n$client-&gt;addScope('https:\/\/www.googleapis.com\/auth\/firebase.messaging');\r\n\r\n\/\/ Returns an instance of GuzzleHttp\\Client that authenticates with the Google API.\r\n$httpClient = $client-&gt;authorize();\r\n\r\n\/\/ Your Firebase project ID\r\n$project = \"myproject-4e6ed\";\u3000\/\/ 2\u3067\u53d6\u5f97\u3057\u305f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u306b\u5909\u66f4\r\n\r\n\/\/ Creates a notification for subscribers to the debug topic\r\n$message = [\r\n    \"message\" =&gt; [\r\n        \"topic\" =&gt; \"debug\",\r\n        \"notification\" =&gt; [\r\n            \"body\" =&gt; \"This is an FCM notification message!\",\r\n            \"title\" =&gt; \"FCM Message\",\r\n        ]\r\n    ]\r\n];\r\n\r\n\/\/ Send the Push Notification - use $response to inspect success or errors\r\n$response = $httpClient-&gt;post(\"https:\/\/fcm.googleapis.com\/v1\/projects\/{$project}\/messages:send\", ['json' =&gt; $message]);<\/pre>\n<p>3\u306e$message\u3067\u3059\u304c\u3001\u4e0a\u306e\u30b5\u30f3\u30d7\u30eb\u306e\u4f8b\u3067\u306fdebug\u30c8\u30d4\u30c3\u30af\u306e\u8cfc\u8aad\u8005\u306b\u901a\u77e5\u3092\u9001\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3053\u308c\u3067php\u304c\u6b63\u3057\u304f\u901a\u77e5\u3092\u51fa\u305b\u308b\u304b\u30c6\u30b9\u30c8\u3057\u3066\u307f\u308b\u306e\u304c\u3044\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u30c6\u30b9\u30c8\u306e\u901a\u77e5\u3092\u78ba\u8a8d\u51fa\u6765\u305f\u306e\u3067\u3001\u3059\u3053\u3057\u62e1\u5f35\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"lang:default decode:true \">\uff5e\u3000\u7565\u3000\uff5e\r\n$title = \"\u901a\u77e5\u30bf\u30a4\u30c8\u30eb\";\r\n$body = \"\u901a\u77e5\u5185\u5bb9\u3067\u3059\";\r\n$topic = \"hogehoge\"; \/\/\u3053\u306e\u30c8\u30d4\u30c3\u30af\u306e\u6307\u5b9a\u306f\/topics\/[\u30c8\u30d4\u30c3\u30af\u540d]\u3067\u306f\u306a\u304f\u30c8\u30d4\u30c3\u30af\u540d\u306e\u307f\u3067OK\u3067\u3057\u305f\r\n\r\n\/\/\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6709\u52b9\u6642\u9593\u306e\u8a2d\u5b9a\r\n$sec = 2 * 60 * 60;  \/\/\u6709\u52b9\u6642\u9593\u306f2\u6642\u9593\r\n$timestamp = time() + $sec;\r\n$sec_st = $sec . \"s\";\r\n\r\n\/\/ Creates a notification for subscribers to the debug topic\r\n$message = [\r\n    \"message\" =&gt; [\r\n        \"topic\" =&gt; (string)$topic,\r\n        \"notification\" =&gt; [\r\n            \"body\" =&gt; (string)$body,\r\n            \"title\" =&gt; (string)$title ,\r\n        ],\r\n        \r\n        \"apns\" =&gt; [\r\n            \"headers\" =&gt; [\r\n               \"apns-priority\" =&gt; \"10\",\r\n               \"apns-expiration\" =&gt; (string)$timestamp,\r\n            ],\r\n            \"payload\" =&gt; [\r\n               \"aps\" =&gt; [\r\n                  \"sound\" =&gt; \"default\",\r\n               ]\r\n            ]\r\n        ],\r\n        \r\n        \"android\" =&gt; [\r\n           \"priority\" =&gt; \"high\",\r\n           \"ttl\" =&gt; (string)$sec_st,\r\n           \"notification\" =&gt; [\r\n              \"sound\" =&gt; \"default\",\r\n           ]\r\n        ],        \r\n    ]\r\n];\r\n\r\n\uff5e\u3000\u7565\u3000\uff5e<\/pre>\n<p>\u4e0a\u306e\u4f8b\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6709\u52b9\u671f\u9650\u30922\u6642\u9593\u306b\u8a2d\u5b9a\u3057\u97f3\u3092\u9cf4\u3089\u3059\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3059\u3002apns(pple push notification service)\u3068android\u3067\u8a2d\u5b9a\u304c\u7570\u306a\u308b\u306e\u3067\u5225\u9014\u6307\u5b9a\u3057\u307e\u3059\u3002\u901a\u77e5\u306e\u30bf\u30a4\u30c8\u30eb\u3068\u5185\u5bb9\u306f\u5171\u901a\u3067\u3059\u3002$title\u3068$body\u3092\u6307\u5b9a\u3059\u308c\u3070\u901a\u77e5\u3092\u884c\u3048\u307e\u3059\u3002\u30e1\u30c3\u30bb\u30fc\u30b8\u306f\u8272\u3005\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306a\u306e\u3067\u5404\u81ea\u8abf\u3079\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u516c\u958b\u4e2d\u30a2\u30d7\u30ea\u300c\u4e5d\u4e5d\u304a\u307c\u3048\u3061\u3083\u304a\u300d\u306e\u30e9\u30f3\u30ad\u30f3\u30b0\u901a\u77e5\u306b\u5b9f\u88c5\u3057\u3066\u307f\u307e\u3057\u305f\u3002\u5b9a\u671f\u7684\u306b\u30e6\u30fc\u30b6\u30fc\u306b\u30e9\u30f3\u30ad\u30f3\u30b0\u3092\u901a\u77e5\u3059\u308b\u4ed5\u7d44\u307f\u3067\u3059\u3002cron\u3092\u4f7f\u3063\u3066php\u3092\u53e9\u3044\u3066\u3044\u307e\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=jp.co.kuku&#038;hl=ja&#038;gl=US\" data-lkc-id=\"903\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=play.google.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">play.google.com<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/androiphone.uvs.jp\/wp-content\/uploads\/pz-linkcard\/cache\/72c04bf2077bf1a594138290cdf9f64d3831623f64644f28443bd70922310a13.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">https:\/\/play.google.com\/store\/apps\/details?id=jp.co.kuku&amp;#038;hl=ja&amp;#...<\/div><div class=\"lkc-url\" title=\"https:\/\/play.google.com\/store\/apps\/details?id=jp.co.kuku&#038;hl=ja&#038;gl=US\">https:\/\/play.google.com\/store\/apps\/details?id=jp.co.kuku&amp;#038;hl=ja&amp;#038;gl=US<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/apps.apple.com\/us\/app\/%E4%B9%9D%E4%B9%9D%E3%81%8A%E3%81%BC%E3%81%88%E3%81%A1%E3%82%83%E3%81%8A\/id576384713?l=ja\" data-lkc-id=\"674\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=apps.apple.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">App\u00a0Store<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/androiphone.uvs.jp\/wp-content\/uploads\/pz-linkcard\/cache\/6a5f4055d4b03baf4facb5707a87aaa7ab371cecd54e73cb4bbce45bc9463c36.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">\u200eSTUDY KUKU<\/div><div class=\"lkc-url\" title=\"https:\/\/apps.apple.com\/us\/app\/%E4%B9%9D%E4%B9%9D%E3%81%8A%E3%81%BC%E3%81%88%E3%81%A1%E3%82%83%E3%81%8A\/id576384713?l=ja\">https:\/\/apps.apple.com\/us\/app\/\u4e5d\u4e5d\u304a\u307c\u3048\u3061\u3083\u304a\/id576384713?l=ja<\/div><div class=\"lkc-excerpt\">\u200eThis is the &quot;KUKU&quot; app to study the Multiplication table. The answer form of questions is two alternatives. It is easy to study for preschool or school children. Because this app have &quot;QUESTION VOICES&quot; and &quot;ANSWER VOICES&quot; ( in English and Japanese ), it is possible to memorize it with your ears. T\u2026<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p><a href=\"https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/ios-notify-e1611049916345.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3621\" src=\"https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/ios-notify-e1611049916345-300x209.jpg\" alt=\"\" width=\"300\" height=\"209\" srcset=\"https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/ios-notify-e1611049916345-300x209.jpg 300w, https:\/\/androiphone.uvs.jp\/wp-content\/uploads\/2021\/01\/ios-notify-e1611049916345.jpg 750w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<hr \/>\n<p><span style=\"color: #ff6600;\"><strong><span style=\"font-size: 24pt;\">\u307e\u3068\u3081<\/span><\/strong><\/span><\/p>\n<p>\u6b63\u76f4\u3001\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u306f\u3068\u3063\u3066\u3082\u3081\u3093\u3069\u304f\u3055\u3044\u3067\u3059w\u3002\u3044\u308d\u3044\u308d\u3084\u3063\u3066\u3044\u3066<\/p>\n<blockquote><p><em><strong><span style=\"font-size: 18pt; color: #ff0000;\">\u3084\u3063\u3071\u7c21\u5358\u306a\u30ec\u30ac\u30b7\u30fcHTTP\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u3044\u3044\u304b\u306a\uff1f<\/span><\/strong><\/em><\/p><\/blockquote>\n<p>\u3068\u4f55\u5ea6\u3082\u601d\u3044\u307e\u3057\u305f\u3002\u3044\u3064\u304b\u3001\u3044\u304d\u306a\u308a\u4f7f\u3048\u306a\u304f\u306a\u308b\u3088\u308a\u306f\u3044\u3044\u3068\u601d\u3044\u307e\u3059\u306e\u3067\u3084\u3063\u305f\u3053\u3068\u306f\u7121\u99c4\u3067\u306f\u306a\u304b\u3063\u305f\u30fb\u30fb\u30fb\u3068\u601d\u3044\u305f\u3044\u3067\u3059w<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FCM\u304b\u3089\u901a\u77e5\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u308b \u4ee5\u524d\u306e\u8a18\u4e8b\u3067Android\u304b\u3089\u901a\u77e5(Notification)\u3092\u9001\u308b\u5b9f\u88c5\u3092\u3057\u307e\u3057\u305f\u3002 \u5b9f\u969b\u306e\u904b\u7528\u306f\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u4efb\u610f\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u901a\u77e5\u3092\u751f\u6210\u3057\u3066FCM\u306b\u6295\u3052\u308b\u3068\u3044\u3046\u3053\u3068\u306b\u306a\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u3053 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3640,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"ja","_original_post":"https:\/\/androiphone.uvs.jp\/?p=3613","footnotes":""},"categories":[5,7,16],"tags":[145,144],"class_list":["post-3613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-ios","category-php","tag-firebase-cloud-messaging","tag-google-api-php-client","ja"],"_links":{"self":[{"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=\/wp\/v2\/posts\/3613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3613"}],"version-history":[{"count":10,"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=\/wp\/v2\/posts\/3613\/revisions"}],"predecessor-version":[{"id":3659,"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=\/wp\/v2\/posts\/3613\/revisions\/3659"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=\/wp\/v2\/media\/3640"}],"wp:attachment":[{"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/androiphone.uvs.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}