Spring’19の認定資格を更新

概要 本記事は、Salesforceに置けるSpring’19のリリース内容について各種認定資格を更新するためのTrailheadで学習したもののサマリとなります。なお、更新を行ったのは、下記の3つの認定資格となります。アドミニストレーター認定資格の更新 (Spring’19)https://trailhead.salesforce.com/ja/content/learn/modules/administrator-maintenance-spring19Platform アプリケーションビルダー認定資格の更新 (Spring ’19)https://trailhead.salesforce.com/ja/content/learn/modules/platform-app-builder-maintenance-spring19Platform デベロッパー資格の更新 (Spring ’19) https://trailhead.salesforce.com/ja/content/learn/modules/platform-developer1-maintenance-spring19 アドミニストレーター セールスプロセス全体のカスタマイズ リードと商談のフェーズをカスタマイズできるため、リードがどこでどのように商談に変更されたかを確認できる。 Lightning Experience の結合レポート 最大 5 つのブロックを含めた結合レポートを使用して、さまざまな種類の情報を 1

Continue reading

VSCodeでSalesforceのPackage.xmlを作成

概要 本記事では、VSCodeのExtensionを使うことでSalesforceの対象組織のメタデータを抽出するのに必要となるPackage.xmlを作成する方法を記載します。 Extension 使用するExtensionは下記になります。なので、まずはこれをVSCodeにインストールします。Salesforce Package.xml Generator Extension for VS Codehttps://marketplace.visualstudio.com/items?itemName=VignaeshRamA.sfdx-package-xml-generator Usage SFDXのプロジェクトを作成 コマンドパレット(Cmd+Shift+P)を開き、 SFDX: Create Project with Manifestを実行します。下記のように空のプロジェクトが作成されます。 SFDXで対象の組織を認証 コマンドパレット(Cmd+Shift+P)を開き、

Continue reading

【JavaScript】暗黙的、明示的な型変換

概要 JavaScriptの型変換には、暗黙的と明示的があります。具体的には、Number(value)のような関数が明示的な変換にあたります。暗黙的な変換は、異なる型をオペランドでつなぐ処理でどちらかの型に合わせるように変換するようなものとなります。例えば、Stringは数値を期待されるような場合にはNumber型に変換されます。なので、JavaScriptでは型の不正による予期せぬエラーはほとんどの場合で回避されます。 ===と==の違い ===を使って比較すると、暗黙的な変換はせずに型も含めた比較になります。逆に==の比較では、必要に応じて暗黙的な変換をした上で比較を行います。実際に比較をしてどのようになるかは、下記のテーブル表が参考になります。https://dorey.github.io/JavaScript-Equality-Table/ StringとNumber オペランドによりStringからNumberに暗黙的に変換される処理は、Number関数で変換するのと同じプロセスになります。Number関数は、数字を含むStringであれば正しく変換されますが、数字ではない文字列である場合は、NaN(not a number)を返します。Stringに明示的に変換する場合にはString関数を使用します。 オペランドが-, *, /, %の場合には、Stringは暗黙的にNumberに変換されますが、+の場合にはNumberがStringに変換されるような挙動となります。 Boolean型と空文字列をNumberに変換すると下記のようになります。 Boolean Booean型の変換では、下記の値がJavaScriptではfalseとなります。ちなみに、ifやelse ifの比較や||,&&の演算子があると必要に応じて暗黙的の変換が行われます。 逆に下記がtrueに変換されるものとなります。 Object(Array含む) Object型は、暗黙的な変換では[object Object]という文字列に変換されます。Object型はtoString()を継承しており、暗黙的な変換ではこれが呼び出されます。なので、ObjectのtoString関数を上書きすることで、適切な文字列を返すようにすることができます。また、数値への変換の場合には、valueOf()を継承することで変換時に呼び出されるようにもできます。

Continue reading

Spring Boot 2の基礎

概要 本記事は、下記の本を読んでSpring Boot2(その他諸々)について学んだことを簡単に整理したものとなります。整理している内容としては、概念的な部分から細かいTipsまでをピックアップしております。大体、本の目次ごとに整理しております。 Spring Bootとは Spring Frameworkの本体をベースに「Spring MVC」「Spring Roo」「Spring Boot」で構成されている。 「Spring MVC」は、WebアプリのベースでありModel-View-Controllerで構成されいる。 「Spring Roo」は、各種コードの自動生成機能ライブラリ(RubyでいうRailsのようなイメージ)である。 つまり、「Spring Boot」は、「Spring MVC」を土台にして「Spring Roo」を組み合わせて全体をシンプルに使えるように統合したものである。 「Spring Boot」での開発は、正確には「Spring

Continue reading

JavaのアプリからSalesforceのREST APIをコールする方法

概要 Javaのアプリケーション等の外部システムからSalesforceのREST APIをコールするには、事前にSalesforceの対象組織に対してログイン認証をする必要があります。本記事ではその部分をJavaのSpring Bootのフレームワークでどのように実装するかについて、サンプルコードを交えて整理しております。また、そのアプリでSalesforceとのOAuthでの認証を実現する方法、Herokuへのデプロイする方法も簡単に記載しております。 構成 今回は下記のような構成で外部システムにあたる部分を実装します。 アプリ:Spring Boot(Java) 基盤:Heroku Javaアプリの作成 最初にSpring Initializr(https://start.spring.io/)からスケルトンを作成します。今回は、ビルドツールはMavenを使用します。 pom.xmlファイルの作成 今回使用するライブラリをpom.xmlファイルに定義します。 ポイントは下記を使用する点となります。spring-security-oauth2・・・SpringにおいてOAuthの認証を実現するために使用します。spring-security-oauth2-autoconfigure・・・Spring Security OAuth2の設定をシンプルに実現するために使用します。 SSOでのOAuth認証を実装 OAuth2 コンシューマがアクセストークンを取得するためには、OAuth2

Continue reading

【JavaScript】値型と参照型 (Value Types and Reference Types)

概要 本記事ではJavaScriptにおける値型(Value Types)と参照型(Reference Types)の違いを簡単に整理します。 値型(Value Types) Number,Boolean,String,null,undefined,Symbolはプリミティブ型であり関数へは全て値型で渡されます。ここでのポイントは、Stringが値型で渡させるということとなります。他の言語では、Stringは一般的に参照型である場合が多いですが、JavaScriptでは値型なので注意が必要となります。値型で関数(fucntion)に渡させると、関数の中での変更は影響しないような挙動となります。下記が簡単な例です。 参照型(Reference Types) Object,Array,Functionの型は、参照型で渡さます。ちなみに、ArrayやFunctionも大きく捉えるとObjectに含まれると考えられます。参照型で関数(fucntion)に渡させると、関数の中での変更は呼び出し元の変数にも影響するような挙動となります。下記が簡単な例です。 まとめ JavaScriptでは明示的に型を宣言しないので、他の言語ほど型を意識しないことが多いですがいわゆる値型と参照型での動作の違いが出てくるので、考慮した上で実装する必要はあります。 参考 Understand Value and Reference Types in JavaScripthttps://www.zsoltnagy.eu/understand-value-and-reference-types-in-javascript/ Value

Continue reading

WordPressにreCAPTCHAを導入

概要 本ブログはWordPressで運用しているのですが、プラグインのJetpackを導入してからダッシュボードで「悪意のあるログイン試行のブロック数」が表示されるようになり、毎日結構な数になっていたことから、Google社のreCAPTCHA(リキャプチャ)を導入してみました。その際の手順を簡単にまとめます。なお、reCAPTCHAのバージョンはv3、WordPressのプラグインはGoogle Captcha (reCAPTCHA) by BestWebSoftを使用しております。 GoogleへWEBサイトの登録&APIキー取得 下記のGoogle社のページで右上にあるAdmin ConsoleからWordPressのWebサイトを登録します。https://www.google.com/recaptcha/intro/v3.html まずは登録するサイトのドメインとラベルを適切に入力します。また、reCAPTCHAのタイプは今回、v3を使用します。こちらは、reCAPTCHAの最新版であり以前のようなチェックボックス押下も不要で、どういうロジックかはわかりませんが自動でGoogle社がスコアを出して、人間かBotかを判断してくれるようです。 WordPressにプラグインを導入 reCAPTCHAをログイン画面やコメント画面のフォームへ簡単に導入してくれるプラグインを使用します。今回は、v3にも対応していたGoogle Captcha (reCAPTCHA) by BestWebSoftを使用することにしました。プラグインのURLは、こちらになります。https://ja.wordpress.org/plugins/google-captcha/設定に関する手順書もしっかり整理されており、こちらから参照可能です。https://docs.google.com/document/d/1yTDdMSLqvgATbo5lPzuNn4QRF0EyEPFuLoFB15beMww/edit プラグインの設定 プラグインを有効化するとサイドバーに”Google Captcha”が現れます。ここで、上記の手順においてGoogleの登録ページで取得したAPIキー(サイトキーとシークレットキー)を正しく入力します。 APIキーを入力すると”Test

Continue reading

VisualforceでreCAPTCHAを実装

概要 SalesforceのCommunityやSites等で外部へ公開するページをVisualforceで実装する場合にBotによる標準型攻撃を受けないようにするための対策としてGoogle社が提供するreCAPTCHA(リキャプチャ)を使用して認証を実装するサンプルコードと手順を紹介します。 Googleへサイトの登録とAPIキーを発行 まず、下記のURLからGoogleへサイトの登録とAPIキーの発行を行います。右上のAdmin Consoleから登録できます。https://www.google.com/recaptcha/intro/v3.html 現在、Google社が提供しているreCAPTCHAには最新のv3と旧のv2がありますが、v2も引き続き使用できるようですので、そちらを使用したいと思います。また、ドメインには、公開サイトとなるCommunityやSitesのドメインを指定するようにしてください。今回は、テストで動作確認するのみなので、force.comを指定しておきます。 ここまでの入力が完了すると、Public KeyとSecret Keyが発行されます。こちらを実装するときに使用します。 Salesforceでリモートサイトへ登録 Apexでサーバー側で認証する際に、Googleのサーバーへリクエストする必要があるので、SalesforceのリモートサイトへURLを登録しておく必要があります。 Visualforceの実装 Visualforceでの実装サンプルは下記の通りとなります。チェックボックスの押下により発行されたトークンをhiddenの項目に保持しておき、サーバー送信時にPostします。 サーバー側(Apex)の実装 サーバー側(Apex)の実装サンプルは下記の通りとなります。クライアントからポストされたトークンとSecret Keyをパラメーターにして、所定のGoogle社のURLへPOSTして認証を実施して、レスポンスで結果を確認します。 デモ 下記のようの動作となりました。 参考 Adding

Continue reading

SalesforceのメールをSendGrid経由で送信する

概要 Salesforceから送信するメールは、Salesoforceのメールサーバから送られます。スパムや迷惑メールの対策のためにSalesforce外のメールサーバーを経由して送信する為には、メールリレーの機能を使用することで実現可能となります。本記事では、メールリレーを使用してクラウドでメール送信のサービスを提供しているSendGridを経由するように設定する方法を紹介します。メールリレーを使用するよくあるシチュエーションは、なりすましメールの対策として自社のメールサーバーを経由させることで、送信元のメールアドレスのドメインと一致させるような場合となります。SendGridを経由させることのメリットとしては、SendGridはメールのBlockやバウンス、送達率などが管理コンソールで確認する機能がSalesforceよりも優れているという点が考えられます。 SendGridのアカウント作成 SendGridは、テスト用であれば本家でこちらから登録できます。https://sendgrid.com/実際に運用で使用する場合は、構造計画研究所が正規代理店となっている下記から登録が必要となります。https://sendgrid.kke.co.jp/ メールリレーの設定 設定の[クイック検索]ボックスからメールリレーで検索します。 メールリレーを作成します。SendGridのホスト名とポートは下記の通りに指定します。 https://support.sendgrid.kke.co.jp/hc/ja/articles/204187885-SMTP%E3%81%AE%E6%8E%A5%E7%B6%9A%E6%83%85%E5%A0%B1%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84-ホスト名:smtp.sendgrid.netポート番号:25TLS設定:検証して必須SMTP認証を必須:チェックユーザ名:SendGridのアカウントを入力 メールドメイン検索条件の設定 設定の[クイック検索]ボックスからメールドメイン検索条件の指定で検索します。 この設定では、メールリレーを使用する送信者と受信者のドメインを指定することができます。 以上で設定は完了です。これで試しにSalesforceからメールを送信するとSendGrid経由でメールが送信されているはずです。 メールログで送信履歴を確認 設定で[クイック検索]ボックスからメールログファイルを検索します。 ダウンロードしたCSVファイルにテストで送信したメールがメールリレーでSendGrid経由で送信されていることを確認できます。 SendGridの管理画面で確認 SendGridの管理画面にアクセスして送信履歴を確認することもできます。 https://app.sendgrid.com 参考 メールリレーの設定https://help.salesforce.com/articleView?id=email_relay.htm&type=5

Continue reading

WordPressにプラグインなしでTwitterのタイムラインを埋め込み

概要 本記事は、WordPressにプラグインを使用せずにTwitterのタイムラインをサイドバーに埋め込み、表示する方法を記載します。WordPressではプラグインをインストールすることで簡単に設定することができますが、プラグインはたくさん入れると重くなったり、プラグイン同士が競合したりすることがあるので極力少ない方が好ましいです。なので、今回はプラグインを使用しないで実現する方法を紹介します。 手順 早速手順を記載したいと思います。意外と簡単に設定することができ、下記の大きく2ステップでできてしまいます。 Twitter Publishでコードを作成 WordPressのウィジェットでサイドバーに設置 Twitter Publishでコードを作成 Twitter Publishにアクセス URL入力(自分のTwitterアカウントのプロフィールページ)でエンター オプションを選択(Embedded Optionを選択) set customization options.でHightを設定(600pxと入力) コードをコピー WordPressのウィジェットでサイドバーに設置 ウィジェットでサイドバーに設置

Continue reading