2010-12-11 33 views

Répondre

0

Apparemment, il existe une bibliothèque de classes qui est empaquetée pour cela. Ce que je voulais vraiment c'était le protocole HTTP requis pour le faire. En utilisant le Google API documentation for Picasa, c'est ce que j'ai compris.

Une demande ressemble à ceci:

POST https://picasaweb.google.com/data/feed/api/user/default/albumid/default HTTP/1.1 
GData-Version: 2.0 
Authorization: GoogleLogin auth=DQAAAJgAAAD_....-tTM2ZliWDzXLA 
Content-Type: multipart/related; boundary="1292107594356" 
Host: picasaweb.google.com 
Content-Length: 5415 
Expect: 100-continue 

Media multipart posting 
--1292107594356 
Content-Type: application/atom+xml 

<entry xmlns='http://www.w3.org/2005/Atom'> 
    <title>DesiredFileNameOnGoogle.jpg</title> 
    <summary>uploaded from PicasaUpload</summary> 
    <category scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/photos/2007#photo'/> 
</entry> 
--1292107594356 
Content-Type: image/jpeg 

(binary content here) 
--1292107594356-- 

Une réponse ressemble à ceci:

HTTP/1.1 201 Created 
Expires: Sat, 11 Dec 2010 22:46:26 GMT 
Date: Sat, 11 Dec 2010 22:46:26 GMT 
Cache-Control: private, max-age=0, must-revalidate, no-transform 
Set-Cookie: _rtok=y6u5yQV84QUO; Path=/; Secure; HttpOnly 
Set-Cookie: S=photos_html=lIi6RQVuq7F1iAQHMpMkUA; Domain=.google.com; Path=/; Secure; HttpOnly 
Content-Type: application/atom+xml; charset=UTF-8; type=entry 
Vary: Accept, X-GData-Authorization, GData-Version 
GData-Version: 2.0 
ETag: "YD0qeyI." 
Location: https://picasaweb.google.com/data/entry/api/user/1018683/albumid/55399652081/photoid/5549567010?authkey=Gv1sRgCJrQ5qeYxISo5gE 
Content-Location: https://picasaweb.google.com/data/entry/api/user/1018683/albumid/55399652081/photoid/5549567010?authkey=Gv1sRgCJrQ5qeYxISo5gE 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 
Server: GSE 
Transfer-Encoding: chunked 

Et la charge utile Atom dans la réponse est comme ceci:

<?xml version='1.0' encoding='UTF-8'?> 
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:exif='http://schemas.google.com/photos/exif/2007' xmlns:app='http://www.w3.org/2007/app' xmlns:gphoto='http://schemas.google.com/photos/2007' xmlns:media='http://search.yahoo.com/mrss/' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='&quot;YD0qeyI.&quot;'> 
    <id>https://picasaweb.google.com/data/entry/user/1018683/albumid/5549217276399652081/photoid/5549498718938958882</id> 
    <published>2010-12-11T18:49:18.000Z</published> 
    <updated>2010-12-11T18:49:18.319Z</updated> 
    <app:edited>2010-12-11T18:49:18.319Z</app:edited> 
    <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#photo'/> 
    <title>CropperCapture[30].jpg</title> 
    <summary>woof!</summary> 
    <content type='image/jpeg' src='https://lh5.googleusercontent.com/_-Mw_MhEEB_U/TQPHrq_XjCI/AAAAAAAAABQ/wu5AI7QfmWQ/CropperCapture%5B30%5D.jpg'/> 
    <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://picasaweb.google.com/data/feed/api/user/1018683/albumid/5549217276399652081/photoid/5549498718938958882?authkey=Gv1sRgCJrQ5qeYxISo5gE'/> 
    <link rel='alternate' type='text/html' href='http://picasaweb.google.com/1018683/DropBox?authkey=Gv1sRgCJrQ5qeYxISo5gE#5549498718938958882'/> 
    <link rel='http://schemas.google.com/photos/2007#canonical' type='text/html' href='http://picasaweb.google.com/lh/photo/lzJ9Ya6NeZM8sPeVfFcn98QJQ0GDj3dCNP33YlpCH6E'/> 
    <link rel='self' type='application/atom+xml' href='https://picasaweb.google.com/data/entry/api/user/1018683/albumid/5549217276399652081/photoid/5549498718938958882?authkey=Gv1sRgCJrQ5qeYxISo5gE'/> 
    <link rel='edit' type='application/atom+xml' href='https://picasaweb.google.com/data/entry/api/user/1018683/albumid/5549217276399652081/photoid/5549498718938958882?authkey=Gv1sRgCJrQ5qeYxISo5gE'/> 
    <link rel='edit-media' type='image/jpeg' href='https://picasaweb.google.com/data/media/api/user/1018683/albumid/5549217276399652081/photoid/5549498718938958882?authkey=Gv1sRgCJrQ5qeYxISo5gE'/> 
    <link rel='http://schemas.google.com/photos/2007#report' type='text/html' href='http://picasaweb.google.com/lh/reportAbuse?uname=1018683&amp;aid=5549217276399652081&amp;iid=5549498718938958882'/> 
    <gphoto:id>5549498718938958882</gphoto:id> 
    <gphoto:albumid>5549217276399652081</gphoto:albumid> 
    <gphoto:access>private</gphoto:access> 
    <gphoto:width>441</gphoto:width> 
    <gphoto:height>287</gphoto:height> 
    <gphoto:size>26876</gphoto:size> 
    <gphoto:checksum/> 
    <gphoto:timestamp>1292093358000</gphoto:timestamp> 
    <gphoto:imageVersion>20</gphoto:imageVersion> 
    <gphoto:commentingEnabled>true</gphoto:commentingEnabled> 
    <gphoto:commentCount>0</gphoto:commentCount> 
    <gphoto:license id='0' name='All Rights Reserved' url=''>ALL_RIGHTS_RESERVED</gphoto:license> 
    <exif:tags> 
    <exif:imageUniqueID>abfde2a4ab9f9e177865ba4fd50e7edb</exif:imageUniqueID> 
    </exif:tags> 
    <media:group> 
    <media:content url='https://lh5.googleusercontent.com/_-Mw_MhEEB_U/TQPHrq_XjCI/AAAAAAAAABQ/wu5AI7QfmWQ/CropperCapture%5B30%5D.jpg' height='287' width='441' type='image/jpeg' medium='image'/> 
    <media:credit>User Name</media:credit> 
    <media:description type='plain'>woof!</media:description> 
    <media:keywords/> 
    <media:thumbnail url='https://lh5.googleusercontent.com/_-Mw_MhEEB_U/TQPHrq_XjCI/AAAAAAAAABQ/wu5AI7QfmWQ/s72/CropperCapture%5B30%5D.jpg' height='47' width='72'/> 
    <media:thumbnail url='https://lh5.googleusercontent.com/_-Mw_MhEEB_U/TQPHrq_XjCI/AAAAAAAAABQ/wu5AI7QfmWQ/s144/CropperCapture%5B30%5D.jpg' height='94' width='144'/> 
    <media:thumbnail url='https://lh5.googleusercontent.com/_-Mw_MhEEB_U/TQPHrq_XjCI/AAAAAAAAABQ/wu5AI7QfmWQ/s288/CropperCapture%5B30%5D.jpg' height='188' width='288'/> 
    <media:title type='plain'>CropperCapture[30].jpg</media:title> 
    </media:group> 
</entry> 
0

Essayez cet échantillon de code qui fonctionne pour moi j'espère travailler avec vous

GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("lh2", "Your application name"); 
     authFactory.Token = (string)HttpContext.Current.Session["token"]; 

PicasaService picasaService= new PicasaService(authFactory.ApplicationName); 
     service.RequestFactory = authFactory;    
Uri postUri = new Uri(PicasaQuery.CreatePicasaUri(Constants.CurrentUser, albumId)); 

     System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); 
     System.IO.FileStream fileStream = fileInfo.OpenRead(); 

     PicasaEntry entry = (PicasaEntry)picasaService.Insert(postUri, fileStream, "image/jpeg", filePath); 

     fileStream.Close();