2010-12-11 22 views

答えて

0

明らかに、これを行うためにパッケージ化されたクラスライブラリがあります。私が本当に望んでいたのは、それを行うために必要なHTTPプロトコルでした。 Google API documentation for Picasaを使用して、これは私が考え出したものです。

要求は、次のようになります

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-- 

応答は次のようになります。

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 

し、応答でのAtomペイロードは、このようなものです:

<?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

てみてください私のために働いているコードのサンプルあなたと協力したいと思っています

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(); 
関連する問題