私は、ユーザーが Google ドキュメント リンクをアプリケーションに添付し、アプリケーション自体からそれらを表示/編集できるようにする .net アプリケーションに取り組んでいます。Iframes を使用して、アプリケーションに Google ドキュメントを埋め込みます。
アプリケーションへの Google ドキュメントの埋め込みはオフラインで行う必要があるため、Google API からのアクセス トークンを使用して URL を取得し、表示しています。これには表示上の問題があります。
Google APIドキュメントに従って、Googleドキュメントを「オフライン」で開くために必要なアクセストークンの取得に関連するすべてのことを行いました。Google API 開発者ドキュメントによると、Google ドキュメントの URL を開くときに、アクセス トークンをクエリ パラメーターまたはリクエスト ヘッダー ("Authorization" ヘッダー) として渡す必要があります。
Authorization ヘッダーを使用して、HttpWebRequest オブジェクトを使用して Google ドキュメントの URL を開こうとしましたが、ドキュメント ページが正しく開かれません。
aspx ファイルのコード
htmlBuilder.AppendFormat("<iframe src='ShowFiles.ashx?url={0}' id='myFrame' name='myFrame' width='100%' height='100%' marginheight='0' frameborder='0'></iframe>", urlLink);
Generic Handler (ShowFiles.ashx) ファイルのコード
// get the UrlLink from the Query Parameter (url)
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(urlLink);
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/27.0.1453.116 Safari/537.36";
myHttpWebRequest.Headers.Add("Authorization", "Bearer " + accessToken);
string pageContent = string.Empty;
HttpWebResponse HttpWResp = (HttpWebResponse)myHttpWebRequest.GetResponse();
if (HttpWResp != null)
{
StreamReader sr = new StreamReader(HttpWResp.GetResponseStream());
pageContent = sr.ReadToEnd();
}
context.Response.ContentType = HttpWResp.ContentType;
context.Response.Write(pageContent);
ブラウザはGoogleドキュメントを開きますが、開くと「Googleに接続しようとしています」と表示され続け、「サーバーが応答しません」という警告が表示され続けます
そこで、URL LINK へのクエリ パラメータとしてアクセス トークンを使用しようとしましたが、まったく機能していないようです。例: urlLink = " http://google.docs.com/myDoc/myFile?access_token=fsdfsfsq4334234_df
このURLをiframe srcに設定します
<iframe src=urlLink>
これはまったく機能しません...
同じブラウザで、このGoogleドライブドキュメントがあるGoogleアカウントにログインすると(別のタブに)、このアクセストークンのないWebアプリケーションで、ドキュメントを指定するだけで、iframeがGoogleドキュメントを完全にロードすることを知っていましたURLのような
http://google.docs.com/myDoc/myFile">
jQuery ajaxを使用してクライアント側からURLを開こうとすると、Googleドキュメントが開かれて読み取り専用になります。
var jqXHR = $.ajax({
async: true,
url: url,
type: 'GET',
xhr: function () {
var xhr = new window.XMLHttpRequest();
return xhr;
},
beforeSend: function (xhr) {
if (xhr != null)
xhr.setRequestHeader("Authorization", "Bearer " + token);
}
});
jqXHR.done(function (data, textStatus, xhr) {
$("#myFrame").contents().find("html").html(xhr.responseText);
});
Web アプリケーション内の IFRAME でこの Google ドキュメントを (編集モードで) 正しく表示するのを手伝ってくれる人はいますか?