抽空整理一下前篇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秒殺的速度而言,我們懷疑他是當下才製作,所以這部分請仔細考慮清楚。
文章標籤
全站熱搜