抽空整理一下前篇SkyDrive失敗史之後的產物,廢話不多說進入主題。

1. 一樣先申請APP權限,網址點我,注意看清楚申請規則,他測試模是只提供5組帳號進行使用,如完成測試完請提出發行申請。

2. 我使用的是dkarzon提供的API,下載如下 : 點我下載

3. 參考範例,作者本身的BLOG,有提供詳細的說明。

Example:

 1: using System;
 2: using System.Collections.Generic;
 3: using System.Linq;
 4: using System.Web;
 5: using System.Web.UI;
 6: using System.Web.UI.WebControls;
 7: using DropNet;
 8: using System.Net;
 9: using System.IO;
 10:  
 11: namespace Google_API_test
 12: {
 13:     public partial class DropTest : System.Web.UI.Page
 14:     {
 15:         DropNetClient _client = new DropNetClient("Api_Key", "Api_Secret");
 16:  
 17:         protected void Page_Load(object sender, EventArgs e)
 18:         {
 19:             if (Request.Params["dropboxcallback"] == "1")
 20:             {
 21:                 //Its a callback from dropbox!
 22:                 if (Session["DropNetUserLogin"] != null)
 23:                 {
 24:                     _client.UserLogin = Session["DropNetUserLogin"] as DropNet.Models.UserLogin;
 25:                     try
 26:                     {
 27:                         Session["DropNetUserLogin"] = _client.GetAccessToken();
 28:                     }
 29:                     catch { }
 30:                     var accountinfo = _client.AccountInfo();
 31:                     litOutput.Text = accountinfo.quota_info.quota.ToString();
 32:                     var metaData = _client.GetMetaData("/crm_sign"); //Folder
 33:                     //foreach (var yy in metaData.Contents)
 34:                     //{
 35:                     // //取得縮圖
 36:                     // //ImageButton1.ImageUrl = _client.GetThumbnailUrl(yy.Path, DropNet.Models.ThumbnailSize.Large);
 37:                     // //取得連結
 38:                         
 39:                     // ImageButton1.PostBackUrl = medialink.Url;
 40:                     // litOutput.Text += yy.Name + "...";
 41:                     //}
 42:                     var medialink = _client.GetShare("/crm_sign/0703.jpg");
 43:  
 44:                     ImageButton1.ImageUrl = DoGet(medialink.Url);
 45:                     //ImageButton2.ImageUrl = _client.GetThumbnailUrl("/Photos/0622.jpg", DropNet.Models.ThumbnailSize.Large);
 46:                     //ImageButton3.ImageUrl = _client.GetThumbnailUrl("/Photos/0625.jpg", DropNet.Models.ThumbnailSize.Large);
 47:                     //ImageButton4.ImageUrl = _client.GetThumbnailUrl("/Photos/0626.jpg", DropNet.Models.ThumbnailSize.Large);
 48:                     //ImageButton5.ImageUrl = _client.GetThumbnailUrl("/Photos/0627.jpg", DropNet.Models.ThumbnailSize.Large);
 49:                     //ImageButton6.ImageUrl = _client.GetThumbnailUrl("/Photos/0628.jpg", DropNet.Models.ThumbnailSize.Large);
 50:                 }
 51:                 else
 52:                 {
 53:                     litOutput.Text = "Session expired...";
 54:                 }
 55:             }
 56:         }
 57:  
 58:         protected void btnStart_Click(object sender, EventArgs e)
 59:         {
 60:             if (Request.Params["dropboxcallback"] != "1")
 61:             {
 62:                 Session["DropNetUserLogin"] = _client.GetToken();
 63:  
 64:                 var url = _client.BuildAuthorizeUrl(Request.Url.ToString() + "?dropboxcallback=1");
 65:  
 66:                 Response.Redirect(url);
 67:             }
 68:             
 69:         }
 70:  
 71:         protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
 72:         {
 73:             ImageButton1.ImageUrl = _client.GetThumbnailUrl("/Photos/0621.jpg", DropNet.Models.ThumbnailSize.Large);
 74:         }
 75:  
 76:         public string DoGet(string NewUrl)
 77:         {
 78:             try
 79:             {
 80:                 string _encode = "utf-8";
 81:                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(NewUrl);
 82:  
 83:                 request.KeepAlive = false;
 84:                 request.ProtocolVersion = HttpVersion.Version10;
 85:                 request.Method = "GET";
 86:                 request.ContentType = "application/x-www-form-urlencoded";
 87:                 request.Headers.Set("Accept-Charse", _encode);
 88:  
 89:                 request.AllowAutoRedirect = true;
 90:                 request.MaximumAutomaticRedirections = 10;
 91:                 request.Timeout = (int)new TimeSpan(0, 0, 60).TotalMilliseconds;
 92:                 request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
 93:                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 94:                 string _url = response.ResponseUri.AbsoluteUri;
 95:                 _url = _url.Replace("https://www.", "https://dl.");
 96:                 return _url;
 97:             }
 98:             catch (Exception ex)
 99:             {
 100:                 Console.Write(ex.ToString());
 101:             }
 102:             return "";
 103:         }
 104:     }
 105: }

 

備註:

1. Share這個取得的連結是簡碼須先GET正確網址然後置換網址(95行),這樣取到的連結就是正確的。

2. 此方法目前正確無誤,但不知官方之後是否會修正調,請考慮清楚再使用。

3. 縮圖要資料要很久大約3~4秒,比起SkyDrive秒殺的速度而言,我們懷疑他是當下才製作,所以這部分請仔細考慮清楚。

arrow
arrow
    文章標籤
    Dropbox
    全站熱搜

    balance 發表在 痞客邦 留言(0) 人氣()