2012-11-16 6 views
0

이 문제는 정말 저를 자극합니다. 내가 뭘 하려는지 설명해 드리겠습니다.PHP의 오래된 Picasa 피드

웹 사이트에서 개발중인 웹 사이트에서 Picasa의 특정 계정에서 가져온 사진이있는 앨범을 표시하고 싶습니다. 이를 위해 XML 피드 (http://picasaweb.google.com/data/feed/api/user/userID)를 사용하고 있습니다. 이 피드는 SimpleXMLElement 객체를 사용하여로드합니다.

이상한 일은 앨범에 사진을 추가/삭제할 때 변경 사항이 적용되는 데 약간의 시간 (대개 몇 분 정도 소요됩니다. PHP 개체는 여전히 이전 데이터를받습니다. Google이 요청량을 제한하고 싶어한다고 생각하면 이상한 일은 아니지만 Firefox에서 피드를로드하면 변경 사항이 즉시 표시됩니다.

지연이 발생하는 이유는 무엇입니까? 피드를 검색 할 때 FF와 PHP간에 차이가 있습니까? 나는이 질문이 a while back이라고 묻는 것을 보았다. 그러나 어떤 대답도없이, 나는 necro 그것을하기에는 너무 오래되었다고 생각했다.

나는 file_get_contents와 curl을 모두 사용해 보았지만 둘 중 어느 것도 작동하지 않는 것 같습니다. 분명히 문제는 PHP와는 다른 질문입니다. C#이 사용 되었기 때문입니다.

Expires: Fri, 16 Nov 2012 19:22:45 GMT 
Date: Fri, 16 Nov 2012 19:22:45 GMT 
Cache-Control: private, max-age=0, must-revalidate 
Content-Type: application/atom+xml; charset=UTF-8; type=feed 
Vary: Accept, X-GData-Authorization, GData-Version, Cookie 
GData-Version: 2.0 
Etag: W/"DEEBQnk9fyp7ImA9WhNQEEU." 
Last-Modified: Fri, 16 Nov 2012 17:24:13 GMT 
Content-Encoding: gzip 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 
Server: GSE 

200 OK 

와 컬의 응답 헤더 :

HTTP/1.1 200 OK 
Expires: Fri, 16 Nov 2012 19:30:26 GMT 
Date: Fri, 16 Nov 2012 19:30:26 GMT 
Cache-Control: private, max-age=0, must-revalidate, no-transform 
Set-Cookie: _rtok=lL_1sPFA07ra; Path=/; HttpOnly 
Set-Cookie: S=photos_html=jHfi_UGm4xVujZVehiIOpw; Domain=.google.com; Path=/; HttpOnly 
Content-Type: application/atom+xml; charset=UTF-8; type=feed 
Vary: Accept, X-GData-Authorization, GData-Version, Cookie 
GData-Version: 2.0 
ETag: W/"DEEBQnk9fyp7ImA9WhNQEEU." 
Last-Modified: Fri, 16 Nov 2012 17:24:13 GMT 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 
Server: GSE 
Transfer-Encoding: chunked 

편집 2 : -

편집 여기에 요청 파이어 폭스에서 헤더 인 내가 그것을 알아 냈다고 생각! 익명으로 볼 때 피드는 몇 분마다 업데이트됩니다. 그러나 Firefox에는 Picasa 로그인 세션이 저장되어있어 인증 된 요청으로 계산됩니다. Chrome에이 세션이 없으므로 즉시 업데이트되지 않았습니다. Picasa가 Chrome에 쿠키를 저장하도록 허용 한 후에는 즉시 업데이트되었지만 Opera는 여전히 지연되었습니다. 포스터가 여전히 관심이있는 경우를 대비하여 다른 질문에 대한 답을 줄 것입니다.

의견에 힌트를 보내 주셔서 감사 드리며, 이로 인해 원인을 발견하게되었습니다. 답으로 적어 둘 수 있다면 그걸 받아 들일거야.

+1

PHP 요청 및 Firefox 요청에 대한 요청/응답 헤더를 표시 할 수 있습니까? Picasa가 헤더의 내용을 기반으로 요청을 내부적으로 캐시하는 경우 궁금합니다. –

+0

@cillosis 질문에 추가했습니다. 쿠키를 설정하는 것이 쿠키와 관련이있을 수 있습니다. – Bastiaan

+0

흥미로운 점은 Chrome에서 동일한 피드를 방문 할 때 데이터가 오래된 것입니다. 가장 최근 데이터에 액세스 할 수있는 쿠키에 토큰이 설정되어있을 수 있습니까? – Bastiaan

답변

0

PHP 요청 및 Firefox 요청에 대한 요청/응답 헤더를 확인하십시오. 그것은 왜 그것이 한 인스턴스에서 작동하고 다른 인스턴스에서 작동하지 않는지에 대한 통찰력을 제공해야합니다.

귀하의 경우 (좋은 직업 btw) 귀하의 신원을 확인한대로 Firefox에는 Picasa 인증 자격증 명이있어 캐시되지 않은 버전을 검색 할 수 있습니다.