Php 如何从Yahoo oAuth2结果解析概要文件对象?

Php 如何从Yahoo oAuth2结果解析概要文件对象?,php,oauth-2.0,yahoo-api,Php,Oauth 2.0,Yahoo Api,我不了解我从雅虎认证中获得的个人资料信息。具体来说,我想从“emails”属性获取电子邮件地址 “emails”属性是一个数组。当我尝试迭代数组或像解析任何其他数组一样解析它时,我遇到了一个障碍: Catchable fatal error: Object of class stdClass could not be converted to string in /home/content/54/7550554/html/talqo/youath2callback.php on line 33

我不了解我从雅虎认证中获得的个人资料信息。具体来说,我想从“emails”属性获取电子邮件地址

“emails”属性是一个数组。当我尝试迭代数组或像解析任何其他数组一样解析它时,我遇到了一个障碍:

Catchable fatal error: Object of class stdClass could not be converted to string in /home/content/54/7550554/html/talqo/youath2callback.php on line 33
以下是我的oauth回调页面中的代码,直到发生错误的那一行:

require("lib/Yahoo.inc");  

// Your Consumer Key (API Key) goes here. 
define('CONSUMER_KEY', "$consumer_key");  

// Your Consumer Secret goes here.  
define('CONSUMER_SECRET', "$consumer_secret");  

// Your application ID goes here.  
define('APPID', "$appId");  

$session = YahooSession::requireSession(CONSUMER_KEY,CONSUMER_SECRET,APPID);  

// Fetch the logged-in (sessioned) user  
$user = $session->getSessionedUser();  

// Fetch the profile for the current user.  
$profile = $user->getProfile();

foreach($profile as $k => $v ){
    echo "$k = $v <br>";
}
如果I
var\u dump($profile)我得到了整个包裹。我不知道你是否想看,我也不知道这对这个问题是否重要。看起来我的foreach循环挂起在[“image”]:

所以,我想我解析这个数组的方法不适合我

如果我尝试回显电子邮件,比如:
echo$profile->email它只打印单词数组

如果我尝试在数组中循环,如下所示:

foreach($profile->emails as $k){
echo "$k <br>";
}

那么,如何正确地将Yahoo结果中的所有变量、对象、属性等转换为PHP变量呢?

不要回显数组对象。这里的问题是,您的
emails
键有一个对象数组,当您尝试回显它们时,PHP尝试将这些对象转换为字符串失败

如果您需要电子邮件数据,您需要以如下适当方式访问它们:

foreach($profile->emails as $k){
   echo 'handle: ' . $k->handle . ' id: ' . $k->id . ' type: ' . $k->type . '<br>';
}
foreach($profile->email as$k){
回显“句柄:”。$k->句柄。“id:”。$k->id。“类型:”。$k->类型。“
”; }
+1对于答案,您知道如何仅获取登录用户的电子邮件吗?不是所有的电子邮件。提前谢谢。我完成了精确的代码,但是我得到了这个错误
注意:myfile.php中未定义的属性:stdClass::$handle
就在它打印了一个id 3并键入HOME之后,但是handle是空的。有什么想法吗?我不知道我用的是oauth1还是OAuth2role@echo_Me我对这个API不太熟悉,但似乎
getSessionedUser()
调用可以获取登录用户的信息。现在,当您对返回的用户调用
getProfile()
时,可能会有多封与该登录用户相关的电子邮件。@MikeBrant我应该如何处理
getSessionedUser()
foreach($profile->emails as $k){
echo "$k <br>";
}
Catchable fatal error: Object of class stdClass could not be converted to string in /home/content/54/7550554/html/talqo/youath2callback.php on line 34
foreach($profile->emails as $k){
   echo 'handle: ' . $k->handle . ' id: ' . $k->id . ' type: ' . $k->type . '<br>';
}