多くの人が知っているように、VKontakteソーシャルネットワークの作成者は約2か月前にOpen APIを公開しました。これにより、サードパーティのサイトはVKontakteアカウントを使用してユーザーを認証できました。 開発者向けドキュメントでは、運用サーバーでサイトのOpen APIを構成する方法について説明しています。 しかし、実際には、開発はバージョン管理システムのコードストレージを使用してローカルマシンで実行され、実稼働環境のアップデートは定期的にインストールされます。
同時に、問題が発生します:それへのアクセスが実稼働のみに設定されている場合、開発者のローカルマシンでOpen APIをテストする方法は? この記事では、標準開発サイクルでOpen APIと連携するようにローカル環境を構成する方法について説明します。 マイクロソフトテクノロジを使用したWindowsの開発を検討することを予約しますが、このアイデアは他のプラットフォームに簡単に移行できます。
だから、問題の本質。 ドキュメントに記載されているように、設定するにはVKアプリケーションを作成する必要があります。 サイトのアドレスとベースドメインを示すことが重要です。

VKontakte WebサイトでOpen APIを初期化すると、apiIdパラメーターで指定されたアプリケーション識別子と、この初期化が実行されるサイトのURLと一致します。 URLがアプリケーションの設定で入力されたパラメーターと一致しない場合(上記参照)、「Open API security breach」というエラーメッセージが表示されます。 これは問題です。たとえば、Visual Studioを使用して開発する場合、
http:// localhost:port (portは番号、ポート番号)の組み込みWebサーバーを使用してサイトをローカルでテストすることが多いためです。 しかし同時に、Open APIは上記の理由で動作しなくなります-ローカルVKontakteマシンでは、サイトアドレスは許可されていません(
http://example.com )が、ローカルサイトのアドレスは
http:// localhost:portです。 この問題を解決するには?
ソリューションの本質は非常に簡単です。VKontakteアプリケーション設定(
http://example.com )で指定されたサイトアドレスへのリクエストが、DNS経由でインターネットで利用可能な本番サーバーではなく、マシン上のローカルサイトにリダイレクトされるように、ローカル環境を構成する必要があります開発者。 この場合、開発者はOpen APIをテストできます。 これで、彼のローカルサイトのアドレスは、VKontakteの観点から解決されたアドレス
http://example.comになります。
セットアップはいくつかのステップで構成されます。 まず、windows \ system32 \ drivers \ etc \ hostsファイルを編集する必要があります。 次のエントリを挿入する必要があります。
127.0.0.1 example.com
T.O. example.comへのすべてのリクエストは、ローカルマシンにリダイレクトされます。 次に、example.comアドレスへのリクエストが開発者のサイトのローカルコピーにリダイレクトされるように、ローカルWebサーバー(この場合はIIS 7)を構成する必要があります。 これを行うには、IISマネージャーで新しいWebサイトを作成し、サイトファイルを含むフォルダーへの物理パスを構成し、次のバインドを指定します。

最後に、ローカルマシンでプロキシを使用する場合の最後のステップ。 ブラウザの設定(IEでは[ツール]> [インターネットオプション]> [接続]> [LANの設定]> [詳細設定])で、example.comを除外リストに追加する必要があります(アドレスでプロキシサーバーを使用しないでください)
説明したアプローチのいくつかの制限:最初に、開発者はマシンから本番サイトにアクセスすることと、ローカルサイトに同時にアクセスすることはできません。 運用を開始するには、ホストファイルを変更する必要があります(上記のエントリを削除します)。 次に、開発中にIISをWebサーバーとして使用することを強制され、組み込みのVisual Studio Webサーバーを放棄します。 しかし、実践が示すように、最後の制限はかなりプラスです。 開発者環境は、運用サーバーの実際の環境により近くなります。