2013-06-25 5 views
0

Я работаю над .net-приложением, которое позволит пользователям присоединять ссылку на документ google к приложению и просматривать/редактировать их из самого приложения. Я использую iframes для встраивания документа google в свое приложение.Показывать Google Doc в IFRAME в приложении ASP.Net

Поскольку вложение google doc в приложение должно выполняться в автономном режиме, я использую токен доступа из Google API для получения URL-адреса и отображения. У меня проблемы с отображением.

Я сделал все, что связано с получением токена доступа, необходимого для открытия google doc «офлайн» в соответствии с документом API Google. Согласно документу разработчика google api, открывая URL-адрес google doc, мне нужно либо передать токен доступа в качестве параметра запроса, либо заголовок запроса (заголовок «Авторизация»).

Я попытался с помощью заголовка Authorization и открыл DOC URL Google с помощью HttpWebRequest объекта, но я не получаю страница документа правильно открыта ..

код в 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

и установить этот адрес в IFrame ЦСИ

<iframe src=urlLink> 

это не работает на всех ...

Я знал, что, если в том же браузере, я войти в мой google account, где у меня есть этот документ Google для Google (на другой вкладке), а затем в моем веб-приложении без этого токена доступа, мой iframe загружает документ google отлично, просто предоставив URL-адрес документа, например

h ttp: //google.docs.com/myDoc/myFile ">

Я попытался открыть URL-адрес с клиентской стороны, используя jQuery ajax, после чего он будет открыт, но будет доступен только для чтения.

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); 
     }); 

Может кто-нибудь помочь мне в получении этой документации Google, которые будут отображаться правильно (в режиме редактирования) в IFRAME в моем веб-приложение

ответ

0

Я думаю, документы Google использует HTTPS, и это означает, что вы не можете встроить HTTPS сайт на вашем. Я пробовал внедрять сайты с iframe, у которых есть HTTPS или сертификат ssl, поэтому я подпрыгнул до этого вывода.

+0

Если это так, то со мной, подписанным в учетную запись gmail на одной вкладке, и открытием моего веб-приложения на другой вкладке, я могу установить iframe src в google docs, и он будет отображаться правильно, и iam сможет редактировать документ – devi