ホームページ >バックエンド開発 >PHPチュートリアル >PhP を使用して、スケジュールされたテキスト メッセージを無料で送信します (天気予報、定期的なリマインダー、SMS 祝福など)。
PhP を使用して、スケジュールされたテキスト メッセージを無料で送信します (天気予報、定期的なリマインダー、SMS の祝福など)
PhP を使用して、スケジュールされたテキスト メッセージを無料で送信できます
背景: 私の母は高齢で教育も受けていませんが、畑仕事をするために毎日気象情報を知る必要があるため、インターネット経由でしか天気情報を知ることができません。テレビを通して伝えてください。そこで、インターネットで気象情報を取得し、携帯電話のテキスト メッセージで母に送信することを考えました。
問題: 母に毎日定期的に天気予報のテキスト メッセージを送信するのは不可能です。また、既存の天気予報の購読テキスト メッセージには費用がかかります。
解決策:
オプション 1: Fetion API を使用する
Fetion は現在開発プラットフォームを持っていないため、既存の API はサードパーティによって開発されており、WAP Fetion または 3G Fetion をクラックしてブラウザの動作をシミュレートすることでテキスト メッセージを送信できるようです。さらに、Google Code には、オープンソースの php Fetion 送信クラス php-fetion (http://code.google.com/p/php-fetion/) があります。これらの Fetion インターフェイスにより、スケジュールされたテキスト メッセージの開発が容易になります。
唯一の欠点は、サードパーティ API が不安定で、Fetion アカウント漏洩のリスクがあることです。
ここでは、http://3.ibtf.sinaapp.com/ が提供する Fetion API を使用してテキスト メッセージを送信します。サイト自体は Sina SAE でホストされており、ソース コードは http://www.oschina.net/code/snippet_202258_9754 にあります (ダウンロード アドレスは内部に記載されています)。
この API は、送信者の携帯電話番号、パスワード、受信者の携帯電話番号、およびメッセージの内容を URL パラメーターとして提供するだけで済みます。注意が必要な唯一のことは、文字化けする中国語の問題です (utf-8 エンコーディングの代わりに gbk を使用し、文字化けした中国語文字を直接入力すると、携帯電話は通常の中国語 gbk エンコーディングを受け取ります)。これは、iconv 関数または関数を使用することで解決できます。パラメータ「&u=1」を追加します。
例: 無料 API を呼び出す
http://2.ibtf.sinaapp.com/?phone=携帯電話番号&pwd=Fetion パスワード&to=受信携帯電話番号 (Fetion の友人または自分の携帯電話番号である必要があります)&msg=メッセージ内容&u=1(解決)文字化けの質問)
オプション 2: 139 メールボックスの SMS リマインダー機能を使用する
139メールボックスもチャイナモバイルのサービスで、電子メールとSMSリマインダーの機能を提供します。メールボックスにメール着信通知を設定しておけば、MMS以外にも長文メッセージ、通常のテキストメッセージ、ハンズフリーテキストメッセージもすべて無料です。スペースを取りすぎて通常の使用に影響を与えることを避けるために、時間の経過とともに送信トレイと受信トレイの両方をクリアする必要があることに注意してください。
さらに、簡単な php スクリプトを記述するだけでメールを送信できます。 Sina SAE もこのメール サービスを提供しています。メールサービスの機能を使用すると、すぐにメールを送信できます。コードは次のとおりです:
$mail = new SaeMail();
$ret = $mail->quickSend(
'recipient@139.com' 、
「これがテーマです」、
「これはテキストです」、
「これは送信者のメールです」、
'これは送信者のパスワードです' ,
'これは SMTP サービス ホストです',
[これは smpt サービス ポートです] );
//送信失敗時のエラーコードとエラーメッセージを出力
if ($ret === false)
var_dump($mail->errno(),$mail->errmsg());
?>
詳細については、メール サービス API ドキュメント http://apidoc.sinaapp.com/sae/SaeMail.html を参照してください。
効果は次のとおりです:
テキスト メッセージが正常に送信された後、スケジュールを設定する必要があります。幸いなことに、Sina SAE は Cron サービスを提供しています。 Cron サービスは、SAE が開発者向けに提供する分散タイミング サービスで、スケジュールされたランキング計算などのニーズを満たすために、開発者の特定のアクションを定期的にトリガーするために使用されます。 Cron 設定は、アプリの config.yaml を通じて実装されます。ユーザーが提供する構文形式に従ってアプリ ディレクトリの config.yaml で設定する限り、デプロイ後に有効になります。
例: 詳細なチュートリアルについては、API ドキュメント http://sae.sina.com.cn/?m=devcenter&catId=195 を参照してください。
Cron を追加しましたsaetest/1/config.yaml を編集し、cron セクションを追加します。config.yaml の例は次のとおりです。
名前: サエテスト
バージョン: 1
クロン:
- 説明: cron テスト
URL: mycron/test.php
スケジュール: 10月の$2日 19:00
タイムゾーン: 北京
- 説明: 別の cron テスト
URL: mycron/another_test.php
スケジュール: 10 分ごと
タイムゾーン: 北京
上の例では、2 つのスケジュールされたタスクを説明しています。毎年 10 月 2 日の 19:00 に mycron/test.php を実行し、10 分ごとに mycron/another_test.php を実行します。
インターネット上には、新浪、中国気象網など、気象情報を提供する場所が数多くあり、関連する API やオープンソース コードもあります。これは比較的単純なので、詳細は説明しません。もちろん、上記の Fetion API サイト http://3.ibtf.sinaapp.com/ のソース コードにも天気キャプチャ用のコードが含まれており、そこから学ぶことができます。