0

私は、ユーザーが 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 ドキュメントを (編集モードで) 正しく表示するのを手伝ってくれる人はいますか?

4

1 に答える 1

0

Google ドキュメントは HTTPS を使用していると思います。これは、HTTPS Web サイトを自分の Web サイトに埋め込むことができないことを意味します。以前に HTTPS や ssl 証明書を持つ iframe を使用して Web サイトを埋め込むことを試みたので、この結論に飛びつきました。

于 2013-06-26T01:36:47.830 に答える