我正在开发一个.net应用程序,允许用户将google doc链接附加到应用程序,并从应用程序本身查看/编辑它们。我使用iframe将谷歌文档嵌入到我的应用程序中。
由于谷歌文档嵌入应用程序应该脱机,我使用谷歌API的访问令牌来获取URL和显示。我在这方面有显示问题。
根据Google API文档,我已经完成了与获取打开google doc“离线”所需的访问令牌相关的所有操作。根据google api开发人员文档,在打开google doc url时,我需要将访问令牌作为查询参数或作为请求标头(“授权”标头)传递。
我尝试使用Authorization标头并使用HttpWebRequest对象打开google doc url,但我没有正确打开doc页面。
htmlBuilder.AppendFormat("<iframe src='ShowFiles.ashx?url={0}' id='myFrame' name='myFrame' width='100%' height='100%' marginheight='0' frameborder='0'></iframe>", urlLink);
// 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);
浏览器确实打开了谷歌文档,但一旦打开它就会一直说“尝试连接到谷歌”,它会不断弹出提示“服务器没有响应”
所以我尝试使用访问令牌作为URL LINK的查询参数,但这似乎根本不起作用。 例如: urlLink =“http://google.docs.com/myDoc/myFile?access_token=fsdfsfsq4334234_df
并将此网址设置为iframe src
<iframe src=urlLink>
这根本不起作用......
我知道如果在同一个浏览器中我登录到我的谷歌帐户,我有这个谷歌驱动器文档(在另一个选项卡中),然后在没有此访问令牌的我的Web应用程序中,我的iframe完美地加载了谷歌文档,只是通过提供文档网址
http://google.docs.com/myDoc/myFile“&GT;
我尝试使用jQuery ajax从客户端打开url,然后google doc打开,但变为只读。
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);
});
任何人都可以帮助我在我的网络应用程序中的IFRAME中正确显示这些谷歌文档(在编辑模式下)
答案 0 :(得分:0)
我认为Google文档使用HTTPS,这意味着您无法在自己的网站上嵌入HTTPS网站。我之前尝试使用HTTPS或ssl证书嵌入iframe网站,所以我跳到了这个结论。