底辺SE奮闘記

年収300万SEブログ

【Xamarin.Forms】端末のディスプレイサイズを取得する

意外と需要はあると思います。

環境

  • VisualStudio for Mac 8.0.8
  • Xamarin.Forms 3.3.0.912540

解法

取得位置には注意が必要です。 私の環境では、iPhone8Plusのシミュレータのみ、ContentPageクラスのコンストラクタ内で実行するとNullExceptionになりました。

また、取得できる数値単位はピクセルではなくポイントだという点も注意が必要です。

protected override void OnAppearing()
{
    var w = Application.Current.MainPage.Width;
    var h = Application.Current.MainPage.Height;
}

【PHP】AOSSMSでショートメッセージ SMSを送信する

AOSSMSを利用してSMSを送信します。

www.aixmsg.com

1. 無料トライアルを申し込む

上記HPの「無料トライアル」ボタンを押して無料トライアル申し込みを行う。

翌日ぐらいに電話がかかってくるので応対する。使用用途などを伝える。

その後、メールでログインURL/PASSが送られてくる。

無料トライアルは300通までなので注意。

2.管理画面で各種パラメータを拾ってくる

送信するためにいくつかパラメータが必要です。

それぞれのパラメータを下記を参考に拾って来ましょう。

これがわかりにくいんだ...

パラメータ名 ページの場所 表示位置 どんな値か
token サイドメニュー > 管理機能 > アカウント管理 > アカウント一覧 表内アクセストーク 半角英数の長いやつ。30文字ぐらい
clientId サイドメニュー > レポート > 集計レポート > クライアント集計 表内クライアントID 数字3,4文字ぐらい
smsCode サイドメニュー > SMS送信 >送信一覧 SMSコードselectボックス内 数字5文字ぐらい

3.とりあえずテストしてみる

いきなりphpなどで実装するとハマりそうなので、Postmanなどを利用してテスト送信してみましょう。

www.getpostman.com

送信URL

https://qpd-api.aossms.com/p1/api/mt.json?token=[token]&clientId=[clientId]&smsCode=[smsCode]&message=[送信メッセージ]&phoneNumber=[電話番号]

4.PHPで送信する

ここまできたらあとは送信するだけです。

<?php
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://qpd-api.aossms.com/p1/api/mt.json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query([
        'token' => '[token]',
        'clientId' => '[cliendId]',
        'smsCode' => '[smsCode]',
        'message' => '[送信メッセージ]',
        'phoneNumber' => '[電話番号]'
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);

お粗末様でした。

【CPI・MySQL】CPIの共用ZZサーバでMySQLコマンドを使用したい

という要望、よくあります。よね?

すぐ忘れるので自分用メモ

mySQLに接続する場合

mysqlコマンド実態はだいたいこのあたりにある↓

/usr/local/mysql5/bin

で、接続コマンドは

./mysql -u [契約ユーザ名] -P 3307 -h 127.0.0.1 -p

こうです。

.sqlファイルを実行する場合

mySQLログイン後、

mysql> use [テーブル名];
mysql> source [sqlファイル絶対パス]

こんな感じです。

【VisualStudio・Xamarin.Forms】バージョン番号を取得する

Xamarinの記事が古いものが多めで困ります。 自分用のメモです。

環境

バージョン番号を取得する場合、DependencyServiceを使ってAndroid/iOSそれぞれで頑張って取得するというのが昔は主流だったようです。

が、今はもっといいものがあります。

string versionString = Xamarin.Essentials.AppInfo.VersionString;

これでOKです。

ちなみにこれは、下記の場所から取得できるバージョン番号になります。

【自分用・Unity】Safari × Unity(WebGL)でオブジェクトが真っ黒になる

あくまで個人用メモです。

環境

  • Unity for Mac (2018.3.0f2)
  • Safari 12.1 (14607.1.40.1.4)

現象

Safariでのみオブジェクトが真っ黒になる。

解法

Point LightをDirectional Lightに変更すると治りました。

【PHP】ビルトインサーバではどうあがいてもexecが非同期にならない件

ビルトインサーバ 便利ですよね

php -S 0.0.0.0:8080 -t .

こんな感じでよく使うと思います。

でもこのサーバ内で、下記のようなコードを書いても非同期にならないのです。悲しいですね。

<?php
exec("nohup curl ~url的ななにか~ 1> /dev/null 2>&1 < /dev/null &");