今天是農曆大年初一,先說一聲新年快樂。
順道放上一個近期的作品,名稱叫做GapView,是一個Google+ Album和Picasa Album的Viewer軟件。
其實大半年前已經著手開始,不過未真正去完成。
現在完成度較高的版本已經完成,所以放出來給大家使用。
我自己對Picasa相簿使用度是很重的,有幾十本相簿,大概已經有5本相簿含超過800張相片。
若使用網頁介面,操作很慢,複製連結亦要一張一張去做,很花時間。
很可惜官方的Picasa軟件介面我實在覺得不好用,而且亦沒有複製連結這個功能。
所以這個軟件的目的就是可以讓你快速選擇相片,並複雜連結做Html或BBCode。
對好像我經常貼圖上討論區或者寫Blog的人都會很方便。
技術上,這次使用WPF的MVVM Pattern去設計軟件,是一個新嘗試。
使用方法很簡單,把Google ID加進我的最愛列表,程式就會自動列出相簿。
而Google ID取得方法就是網址後的數字。
https://plus.google.com/photos/113129480538907711691
https://picasaweb.google.com/113129480538907711691
Google Login方面,軟件使用Google OAUTH2登入,用途是看自己的Private權限相簿。
如果你的相簿沒有設權限或者觀看其他人的相簿,便不需要登入。
軟件以唯讀形式經Http連結讀取,我不會對你的圖片做任何操作。
有疑問可以留言問我。
GapView 1.0下載
http://goo.gl/0tm3ph
需要.NET Framework 4.5
程式截圖:
太強大了,很不錯的軟體,利馬來用看看
回覆刪除對呀 太棒了!!!
刪除版主 能不能求助?
回覆刪除到底要如何用OAuth2.0 与 Picasa 配合呢?
Picasa到现在还没更新接口,只有AuthSub 和 ClientLogin..
跪求大神 谢谢!
接通Google 的OAuth,其實已經等同接通Picasa,是同一樣東西。因為現在的Picasa等於Google Plus相簿
刪除大大 现在得空帮我么?
刪除已经用Google.Apis.Auth.OAuth2 下的UserCredential 获得Access Token了
然后以PicasaService 的 SetAuthenticationToken 设置Token(Oauth 传回来的token)
但是创建AlbumQuery时却出错了: Execution of request failed
PS: 大大有木有Facebook 还是什么的 比较容易联络?
我這個程式是用REST方式運作的, 你提及的PicasaService是不是第三方的Library?
刪除在這裡談好一點,個人Facebook不方便.
刪除NuGet 上的
刪除Picasa 是这一个:https://www.nuget.org/packages/Google.GData.Photos/
OAuth2.0 是:https://www.nuget.org/packages/Google.Apis/ 和 https://www.nuget.org/packages/Google.Apis.Auth/
PS:这里没能放截图啊..
我要先睡了 再见
刪除我的代码差不多是这样的:
刪除FileDataStore fds = new FileDataStore("AppName");
UserCredential uc;
ClientSecrets cs = new ClientSecrets()
{
ClientId = "CLIENTID",
ClientSecret = "CLIENTSECRET"
};
uc = GoogleWebAuthorizationBroker.AuthorizeAsync(
cs,
new[] { @"https://picasaweb.google.com/data/" },
"user",
CancellationToken.None,
fds).Result;
PicasaService ps = new PicasaService("AppName-Company-v1");
ps.setUserCredentials(txtUsername.Text, txtPass.Text);
Console.WriteLine(uc.Token.AccessToken);
ps.SetAuthenticationToken(uc.Token.AccessToken);
Console.WriteLine(PicasaQuery.CreatePicasaUri(txtUsername.Text));
AlbumQuery aq = new AlbumQuery(PicasaQuery.CreatePicasaUri(txtUsername.Text));
PicasaFeed pf = ps.Query(aq); //ERROR
pf.Entries.ToList().ForEach(delegate(AtomEntry item)
{
Album a = new Album();
a.AtomEntry = item;
Console.WriteLine(a.Id + " " + item.Title.Text);
});
因為我係用最原生的Google REST API,而唔經第三方Library.
刪除但我會建議你print PicasaQuery.CreatePicasaUri(txtUsername.Text) 做string睇一睇條URL係咪正確.