Subscribe to this list via RSS Blog posts tagged in 第33回
OAuth 2.0「LINE Login」TOAuth2Authenticatorを使った接続方法[JAPAN] 「LINE Login」はOAuth 2.0を利用したユーザー管理サービスです。 LINEのアカウントを持つユーザーが簡単に他のサービスと繋がる事ができます Delphi/C++BuilderではTRESTClient + TRESTRequest + TOAuth2Authenticatorを使えばOAuth 2.0が利用できます   OAuth 2.0の詳しい内容は下記のURLを参照してください。 https://openid-foundation-japan.github.io [OAuth 2.0 仕組み]  Authorization codeを受けとって特定のエンドポイントに返す事でAccess Tokenを取得できます。 取得したAccess Tokenを使ってAPIサービスが利用できるようになります。 LINE Loginの場合profileを取得するAPIサービスです   [LINE Loginを利用するメリット] LINE Login機能をサービスに組み込むことにより、 ユーザーがLINE...

Posted by on in Programming
C++Builder を使って AWS S3に接続[JAPAN] [AWS S3 接続] Delphi/C++ Builderは Cloudを得意とする複数のコンポーネントがあり AWS接続のためのTAmazonConnectionInfoコンポーネントも用意されています Amazon Web Services(AWS) のストレージサービスであるSimple Storage Service(S3)をC++Builderから接続します。   [S3 Bucketを用意します]  embarcadero-jpと言う名前でBucketを作成しました。   [TAmazonConnectionInfo配置と設定] TAmazonConnectionInfoを配置します AccountKey、AccountNameプロパティをIAMと同じ内容を設定します。   [Bucket内のリストを取得する](code example) //// void __fastcall TForm1::Button1Click(TObject *Sender) { std:...
C++Builderで使うCloud API「駅情報」「路線情報」「会社情報」(駅すぱあとWebサービス) [JAPAN] C++Builder を使い、駅すぱあとWebサービス(クラウド型API)を利用し 「駅情報」「路線情報」「会社情報」などの情報をRESTで取得する事が可能です。 今回テストしたデバイスはWindows(64Bit)とiOS10.1です。   [駅すぱあとWebサービス] 駅すぱあとWebサービスAPIを利用するには、ユーザー登録が必要です。 「駅情報」や「路線情報」のサービスに関しては無料のフリープランで商用利用可能ですので まずフリープランの登録を行いました。 https://ekiworld.net/ 上記サイトにアクセスし登録を行うとメールが送られてきます。 メールにはアクセスキー、ご登録ドメイン、ドキュメント(リファレンスマニュアル)が書かれています。 その中のアクセスキーが重要で このアクセスキーを使い各APIにアクセスできるようになります。   [駅すぱあとWebサービスフリープランで利用できるサービス] 上記のようなサービスです。 std::mapを使い エンドポイント一覧情報をもたせました。 //// enum TEki_apis_ {info, corporation, search_course_light, rail, line, station, station_light}; std::map FEndPoint{ {TEki_apis_::info, "/station/info"}, {TEki_apis_::corporation, "/corporation"}, {TEki_apis_::search_course_light, "/search/course/light"}, {TEki_apis_::rail, "/rail"}, {TEki_apis_::line, "/line"}, {TEki_apis_::station, "/station"}, {TEki_apis_::station_light, "/station/light"}};  [TRESTClientを使いクラウドAPI接続](code example) TRESTClient、TRESTRequestを使い駅すぱあとWebサービスの各APIに接続しJSONを取得します //// void __fastcall TEki_Api::UpdateExcect() { UnicodeString sUrl = FstBaseURL + FstEndPoint + "?key=" + FstEkiKey + CreateParameters(FEkiApis); TThread::CreateAnonymousThread([this, sUrl](){ std::unique_ptr cl1{/*std::make_unique(*/new TRESTClient(nullptr)}; // TRESTClient* cl1 = new TRESTClient(nullptr); std::unique_ptr re1{/*std::make_unique(*/new TRESTRequest(nullptr)}; //TRESTRequest* re1 = new TRESTRequest(nullptr); re1->Client = cl1.get(); TJSONValue* jo{nullptr}; cl1->BaseURL = sUrl; try{ re1->Execute(); jo = re1->Response->JSONValue; } catch(Exception& e1){} TThread::Synchronize(TThread::CurrentThread, [&](){ http_json_out(jo); }); })->Start(); }   [駅すぱあとWebサービス JSON](code example) 各API仕様を元にJSON情報を取得します void __fastcall TForm1::DoEditStation(TObject *Sender) { UnicodeString s_js_function_; unsigned int iMaxRecord{0}; if (!(Sender == nullptr)) { TJSONObject* jv = static_cast(Sender); String a = (static_cast( jv->GetValue("ResultSet") ))->ToString(); TJSONObject* jv2 = static_cast( jv->GetValue("ResultSet") ); Memo1->Lines->Append("max=" + static_cast(jv2->GetValue("max") )->Value()); iMaxRecord = StrToIntDef(static_cast(jv2->GetValue("max") )->Value(), 0); TJSONArray* jv3 = static_cast( jv2->GetValue("Point") ); TJSONObject* jv4; TJSONObject* jv5; TJSONObject* jvGeoPoint_; ListView1->BeginUpdate(); switch (iMaxRecord) { case 0: break; case 1: jv4 = static_cast( jv2->GetValue("Point") ); jv5 = static_cast( jv4->GetValue("Station") ); jvGeoPoint_ = static_cast( jv4->GetValue("GeoPoint") ); s_js_function_ = Format("toNearest(%s, %s)", ARRAYOFCONST(( jvGeoPoint_->GetValue("lati_d")->ToString(), jvGeoPoint_->GetValue("longi_d")->ToString() ))); StationItemAdd(jv5, s_js_function_); break; default: for (int i=0; i Count; i++){ jv4 = static_cast(jv3->Get(i)); jv5 = static_cast( jv4->GetValue("Station") ); jvGeoPoint_ = static_cast( jv4->GetValue("GeoPoint") ); s_js_function_ = Format("toNearest(%s, %s)", ARRAYOFCONST(( jvGeoPoint_->GetValue("lati_d")->ToString(), jvGeoPoint_->GetValue("longi_d")->ToString()))); StationItemAdd(jv5, s_js_function_); } } ListView1->EndUpdate(); ListView1->Visible = true; ListView1->Width = FselEdit->Width; ListView1->Position->X = FselEdit->Position->X; ListView1->Position->Y = FselEdit->Position->Y + FselEdit->Height; if (iMaxRecord > 0) { ListView1->ScrollTo(0); } } }   [駅すぱあと路線図フリープラン] 駅すぱあと路線図を使うにはまた別の申し込みが必要です これも同じく申し込み後メールでアクセスキーが送られてきます。 「Rosen JS」 と言うJavaScriptで作られた地図機能APIが提供されます。 C++Builder iOSのTLocationSensorを用いて緯度経度を取得しその情報を使い、 TWebBrowser(ブラウザ)からJSの関数EvaluateJavaScript()でキックすることにしました。  
Developer Camp 33rd Osaka / Tokyo Japan G3 Session RAD Server a Demonstration [JAPAN] We held a Developer Camp 33rd on December 9, 2016 in Tokyo and December 13, 2016 in Osaka. I did a demonstration of RAD Server. It is about 10 minutes demonstration in G3 Session. It's about the four agendas. Generic JSON API (汎用のJSON REST API) User login (TEMSProvider, TBackendAuth) FireDAC (TEMSProvider, TBackendEndpoint, TFDMemTable) Push Events (TEMSProvider, TPushEvents)   [Generic JSON AP(汎用のJSON REST API)] 汎用のJSON APIを作る事が可能です //// procedure TTestResource1.Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse); var jo1: TJSONObject; begin jo1 := TJSONObject.Create; jo1.AddPair('company', 'embarcadero'); jo1.AddPair('name', 'Mohri'); jo1.AddPair('age', '20'); AResponse.Body.SetValue(jo1, True); end; ブラウザで開く事も可能です。またJavaScriptやその他の言語との通信も可能です   [User login(TEMSProvider, TBackendAuth)] RAD Server側でプログラムを組む事なくユーザーの管理が可能です 端末側のプログラムもTEMSProvider, TBackendAuthコンポーネントを使いシンプルなコード実装です //// procedure TForm1.Button7Click(Sender: TObject); begin BackendAuth1.Login; end;   [FireDAC(TEMSProvider, TBackendEndpoint, TFDMemTable)] RAD ServerはFireDACコンポーネントを利用する事ができます。 クライアントがDelphi / C++Builderなら様々な方法でデータを渡す事が可能です。   [Push Events(TEMSProvider, TPushEvents)] RAD Serverは iOS/Androidのプッシュ通知サーバー機能を手軽に構築可能です。 RAD Server側でプッシュ通知の設定をするだけでプログラムを書く必要はありません。 iOS/Android端末にプッシュ送信するためのユーティリティも付いています  
第33回 エンバカデロ・デベロッパーキャンプ・イン東京 & 大阪 T5 サマリー [JAPAN] この記事は第33回エンバカデロ・デベロッパーキャンプの東京および大阪のT5セッション「RAD Server活用ショーケース: IOTを活用してデータを集積」に関するサマリーです。
第33回デベロッパーキャンプ 大阪 LT 今からゲームを作ります(仮) [JAPAN] これは Delphi Advent Calendar 15日目の記事です。 http://qiita.com/advent-calendar/2016/delphi   12月9日(金曜日)に東京で、12月13日(火曜日)に大阪で、第33回エンバカデロ デベロッパーキャンプ無事に終えました。 [大阪【G6】ライトニングトーク]に参加させて頂きました Youtube 2016/09/23 に公開の Shows you how to build a simple car chase game on iOS, Android, Windows and macOS with Delphi.↓これを Video not found or Youtube service not available これを1から作ると言う事で挑戦いたしました。   5分しか無いので最終的に完成できなかったのですが    https://github.com/mojeld/delphi_carchaser_g...
第33回 エンバカデロ・デベロッパーキャンプ・イン東京 B1 & 大阪 T1 サマリー [JAPAN] ◆◇◆デベロッパーキャンプサマリー◆◇◆ 東京【B1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発実践法」 大阪【T1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発入門 - その意義と実践手法」 当記事は第33回 エンバカデロ・デベロッパーキャンプにおいて、2016年12月9日(金)に 東京にて行われた 【B1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発実践法」 、および、 12月13日(火)に大阪にて行われた【T1】Delphi/C++チュートリアルセッション 「Starterから始めるビジュアル開発入門 - その意義と実践手法」のサマリー、関連URLなどを掲載いたします。 使用したプレゼンテーションスライドは下記よりダウンロード可能です。 東京開催分: http://forms.embarcadero.com/33-developer-camp-program-tokyo 大阪開催分: http://forms.embarcadero.com/developer-camp-osaka-download デベロッパーキャンプそのもの紹介は弊社エンバカデロのWebサイトにあります。ご興味のある方は覗いてみてください。 http://forms.embarcadero.com/developer-camp-overview
第33回デベロッパーキャンプ  東京 [B1],[B2], 大阪 [T1]  チュートリアルセッション [JAPAN]   ついに明日 12月9日に東京で、そして来週火曜日の12月13日には大阪で、第33回エンバカデロ デベロッパーキャンプが開催されます。 東京では2つのチュートリアルセッション、大阪では1つのチュートリアルセッションを担当させていただきます。このチュートリアルセッションでは、入門者、初級者の方々を対象に、無料で提供中のDelphi / C++Builder Starter Edition を使った開発&プログラミング講座的なものを実施いたします。Starterを使い始めている方も、これから取り掛かってみようかと思っている方も、どうぞ! 技術情報、新情報、チュートリアルに展示と盛りだくさんのデベロッパーキャンプ。詳細Webページはこちらです。 http://forms.embarcadero.com/developer-camp-overview 上記Webサイトより事前申し込みの上、ご来場ください。...
第33回デベロッパーキャンプ 【T5】RAD Server活用ショーケース: IoTを活用してデータを集積 [JAPAN] いよいよ間近に迫ってきた第33回デベロッパーキャンプ、本日は12/8の水曜日ですから、もうすぐですね。私は2つのセッションを担当しますが、今日はそのうちの T5 セッションについてご紹介します。 メインのセッションは「T5 RAD Server活用ショーケース: IoTを活用してデータを集積」です。このセッションでは、BeaconFence が測位した位置情報をバックエンドのデータベースと連携させてデータ収集する仕組みを RAD Server を用いて実装するお話をさせていただきます。 RAD Server は REST API を Delphi/C++Builder を用いて構築できるフレームワークです。Web API 側とクライアント側で同じ設計やコードを利用できることや、DataSnapとは違ってユーザー認証用の暗号化データベースと認証APIが標準で含まれていますので、開発の効率化が図れます。   残席は少なくなっていますが今からでもお申込みは可能ですので、ご興味がございましたら是非ご参加ください。ご参加頂いた方にはアンケートと引き換えで参加特典もご用意しており...
第33回デベロッパーキャンプ 大阪 T4 Windowsからスマホまでマルチデバイスで サクサク外部API呼び出し活用法 [JAPAN] 今週金曜日 12月9日に東京で、来週 火曜日12月13日に大阪で、第33回エンバカデロ デベロッパーキャンプを開催いたします。 大阪【T4】Delphi/C++テクニカルセッション   「Windowsからスマホまで!マルチデバイスでサクサク、外部API呼び出し活用法」 上記セッションを担当させて頂く事となりました。  OAuth 2.0を使って"LINE Login"や, Kinveyを利用したiOSプッシュ通知, AWS, 駅すぱあとWebサービス API 接続などをDelphi / C++Builderデモを交えて説明させて頂く予定です。 技術情報、新情報、チュートリアルに展示と盛りだくさんのデベロッパーキャンプ。詳細Webページはこちらです。 http://forms.embarcadero.com/developer-camp-overview 無料でご参加いただけます。またささやかながら参加特典も用意してお待ちしております。上記Webサイトより事前申し込みの上、ご来場ください。  ...

Check out more tips and tricks in this development video: