使用simplexml_load_file php函数加载gmail feed

时间:2010-03-11 14:27:39

标签: php gmail simplexml

我需要将我的php脚本连接到Gmail Atom Feed以检索未读的计数 消息,但我在获取xml feed文件时遇到问题:

if($xmlGmailFeed = simplexml_load_file("https://USERNAME:PASSWORD@gmail.google.com/gmail/feed/atom/")) 
    $unreadMessages = $xmlGmailFeed->fullcount;

给出:无法加载外部实体 我可以吗? thaks:)

错误!无法打开流:HTTP请求失败! HTTP / 1.0 401未经授权

3 个答案:

答案 0 :(得分:1)

是的,听起来像是身份验证错误。我相信你必须使用curl进行身份验证,因为simplexml_load_file是不够的。看看GmAtom class。它会做到这一点,或者至少指出你正确的方向。

答案 1 :(得分:0)

尝试使用:

https://USERNAME:PASSWORD@mail.google.com/mail/feed/atom/

答案 2 :(得分:0)

首先尝试执行file_get_contents以查看Feed是否正常并且您已启用allow_url_fopen。 然后,您可以尝试将其保存为临时文件,并将该路径传递给simplexml_load_file。

如果以上工作,你有php< 5.1.0你可以尝试做

simplexml_load_file(rawurlencode("https://USERNAME:PASSWORD@gmail.google.com/gmail/feed/atom/"))

从PHP 5.1.0起,您不需要这样做,因为PHP会为您完成此操作。