FC2ブログ
 
■プロフィール

クリエイトウェーブスタッフ

Author:クリエイトウェーブスタッフ
開発における、諸々を書いていきたいなと思っています。

■最近の記事
■カテゴリー
■twitter

■QRコード

QR

■最近のコメント
■月別アーカイブ
■最近のトラックバック
■ブロとも申請フォーム
■twitter_follow

■ブログ内検索

■RSSフィード
■リンク
CloudFunctionでGETを受信
ものすごく、しょうもない事で時間を使ってしまったので備忘録

FireBaseのfunctionsでGETってどうやってうけとるんだっけ? と思ったのだけどそれがわかんなくて・・・
functions.https.onRequest((request, response) => { の命令のあとに request.method でGETかPOSTを分岐させてるページはあるんですが、実際のパラメータ取得のサンプルはPOSTばかり・・・・

結局、よくわからなくてnode.js(functionsは結局node.jsですもんね)のGETサンプルのページみつけて解決しました。
node.jsのもなかなかわかりやすいサンプルみつからず・・・・

https://~~~~~~~~~~~~~~~~~~~~~~~~~~~/gettest?user=akito
でuserにakitoって文字入れてるんですがfunctionsは無事以下のようにしたらとれました。

exports.gettest = functions.https.onRequest((request, response) => {
response.send(request.query['user']);
});

こんなのに時間かけてしまって・・・
しかも使う事あるのだろうか・・・


カテゴリー:FireBase | TM(0) | CM(0)
たびねこ空を飛ぶ リリース!
有限会社CreateWaveと有限会社SevenBeatはカジュアルゲーム共同開発第1弾といたしまして、iPhone/Androidアプリ「たびねこ 空を飛ぶ!」海外展開名「Tabineko Flying Cat!」の配信を開始いたしました。

「たびねこ 空を飛ぶ!」は可愛いねこなのに空を飛んでしまう。ゆるいキャラクターなのに操作が難しいと言うギャップをコンセプトに開発いたしました。
クライアントサイドにはUnityを利用、サーバーサイドにはMBaasを利用し運営コストの削減を行なっています。また、課金モデルを広告のみにする事でお財布にも優しい作りとなっており、お手軽に遊べるゲームとなっております。

是非是非この機会に遊んでいただければ幸いです。

ダウンロード:https://seven-beat.co.jp/tabineko.php

カジュアルゲームの開発に関するお問い合わせは、コメント連絡いただければご返信いたします。
https://seven-beat.co.jp/tabineko.php

カテゴリー:Unity | TM(0) | CM(0)
Cloud functions上とUnityのAPI通信で余分な文字列削除
昨日の暗号の実験も兼ねて、FireBaseのCloud functions(言語はNode.js)にUnityからPOST通信でJson文字列を送ってみました。
文字列はちゃんときてて見かけ上は

var jsonStr = {"id":"UnityEditor"}; 
var json = JSON.parse(jsonStr);
※ {"id":"UnityEditor"};がUnityから送った文字列です。

しかし・・・ しかしですよエラーです。
おかしい・・・・ 意味わからない。

Cloud functionsのエラーログを見ると{"id":"UnityEditor"} の20文字目が原因とある。
調べてみると最後の }  の文字が0からスタートして19文字目で20文字目なんてない・・・ハズ。
Unityで暗号かけて、Node.js で複合してるせいなのか・・・・ それともそんな事しなくてもこうなるの?

とにかく、これはログとかに出ない最後になんか変な文字が入ってるなと思って
(これが結構プログラムしてると出くわす問題だったりします)

jsonStr = jsonStr.trim();

をかけてみました。効果なし・・・・・
う~む

とりあえず、jsonStrの文字数をログに出してみる・・
32文字・・・  えっ32文字だって・・・・ 全部で20文字なのに12文字多いのはどういうこっちゃ!! と思って
for(var i = 0 ; i < jsonStr .length ; i++)
{
   console.log(jsonStr.charCodeAt(i));
}

で一文字ずつ文字コードをコンソールに書き出してみました。 
20から32まで文字コード0が続いている・・・ 文字コード0!? そんな文字あるの?

しょうがないので色々しらべて
jsonStr = jsonStr.replace(new RegExp("^" + String.fromCharCode(0) + "+|" + String.fromCharCode(0) + "+$", "g"),'');

と、文字列の前後から余分な文字コード0の文字を削除する命令をつけてみました。
そしたら、うまくいった。
問題なく文字列をJson化してくれました。

毎回一発でうまくいかなくて、がっくりきますが、今回もそのパターン・。
とりあえず、うまくいってよかった。

カテゴリー:FireBase | TM(0) | CM(0)
Node.jsとUnityで暗号通信
使うかどうか判りませんが、FireBaseのCloud functions(言語はNode.js)とUnity(C#)でAESの暗号のやりとりを出来るようにしておこうとやってみました。
Unityのコードは

実際サーバーをPHPでやっていた時は、うまく動いてました。

で、Node.jsの方も色々調べて

というのを書いてみました。

Node.js上で作った暗号は、Node.jsで複合成功。
Node.jsで作った暗号は、Unityで複合成功
しかし。。。。 Unityで作った暗号はNode.jsで複合に成功しない・・・・エラーです。

う~む、これで終わりと思ったのですが、やはりうまくいかないものです。
格闘して調べて正解は

decipher.setAutoPadding(auto_padding =false); //パディングの設定をしなければならない
が必要のようです。
Unity側でパディング設定があるから、Node.js側もいるのでは? と思ったらズバリでした。(パディングの意味とか判ってないんですが><)

ホントは、module.exports でクラス化したかったんですが、exportsするとなぜかこの
decipher.setAutoPadding(auto_padding =false); を受け付けてくれない・・・ なぜなんでしょう。

結局1日以上潰してしまいました。

カテゴリー:FireBase | TM(0) | CM(0)
CloudFunctions上でサーバー時間を取得
node.jsで時間取得の命令を使えばいいのだろうと思ったのですが 「date-utils」 を使うらしい。
functionsのnode_modulesの中を見てみると、 「date-utils」がないように見える。。。

cd functions のコマンドでfunctionsのフォルダの中に入り
npm install date-utils
を実行しました。

node_modulesの中に 「date-utils」 が出来てました。
index.jsの中で

require('date-utils');
var date = new Date();
var formatted = date.toFormat("YYYY/MM/DD HH24時MI分SS秒");
response.send(formatted);

を書いてデプロイして実行してみた。
ちゃんと取れたんですが、年月日はあってるんだけど、時間、分、秒がどうみても日本時間ではない・・・・

調べてみたところ、協定世界時というので表示されている。
日本時間との差は、丁度9時間きっかりのようです。

require('date-utils');
var date = new Date();
date.setHours(date.getHours()+9);//日本時間に変換
var formatted = date.toFormat("YYYY/MM/DD HH24時MI分SS秒");
response.send(formatted);

でちゃんと日本時間で表示されるのが確認出来ました。

var formatted = date.toFormat("YYYYMMDDHH24MISS");
とすれば、数字のみで
20180514101010 (2018年5月14日10字0分10秒)みたいな値で取得できます。

Functionsで、期間限定でイベントを行うAPIを作る時に役に立ちそうです。

カテゴリー:FireBase | TM(0) | CM(2)
前のページ 次のページ

FC2Ad