【问题标题】:How to insert and retrieve postBody in Mirror API account insert method using PHP如何使用 PHP 在 Mirror API 帐户插入方法中插入和检索 postBody
【发布时间】:2014-08-13 05:11:14
【问题描述】:

我需要在镜像 API 插入方法的 postBody 中插入用户的电子邮件。我正在使用此代码:

$authtoken=null;    
$postBody = new Google_Service_Mirror_Account();
$postBody->setAuthTokens($authtoken);
$userdata=array("email"=>$email);
$postBody->setUserData($userdata);
$account = $service->accounts->insert($userToken, package-name-here, $accountName, $postBody);

上述方法返回null作为响应!我不确定要添加什么作为 authtoken。

在此之后,我需要通过 Android 的客户经理检索用户的电子邮件帐户:

AccountManager manager = AccountManager.get(c);
Account[] list = manager.getAccountsByType(package-name-here);
for (Account acct : list) {
    accountEmailId= manager.getUserData(acct, "email");
    break;           
}

这似乎不起作用。我没有在 Glass 设备中获得此类帐户。任何帮助都会很棒。

编辑: 将 authTokenArray 和 userDataArray 添加到 postBody,如下所示:

$userDataArray= array();
$userData1= new Google_Service_Mirror_UserData(); 
$userData1->setKey('email');
$userData1->setValue($email);
$userDataArray[]=$userData1;    

$authTokenArray= array();
$authToken1= new Google_Service_Mirror_AuthToken(); 
$authToken1->setAuthToken('randomtoken');
$authToken1->setType('randomType');
$authTokenArray[]=$authToken1;  

$postBody = new Google_Service_Mirror_Account();
$postBody->setUserData($userDataArray);
$postBody->setAuthTokens($authTokenArray);

帐户插入方法仍然返回 null。到现在也无法解决问题。

[已解决] Mirror API 仍然返回 NULL 响应,但实际上是在 Mirror API 中插入帐户。更新的代码可以在这里查看:http://goo.gl/DVggO6

【问题讨论】:

    标签: php android google-glass google-mirror-api


    【解决方案1】:

    setAuthTokens 接受一个Google_Service_Mirror_AuthToken 对象数组(see the source here),每个对象都有一个authToken(您选择的任意字符串)和一个type(另一个任意字符串)。这些值会直接复制到 Android AccountManager 中的帐户中,以便您可以在设备上查看它们。

    您的问题可能来自您现在正在传递null。我会尝试解决这个问题,然后看看你是否能够在设备上看到该帐户。

    【讨论】:

    • 谢谢。正如你提到的,我尝试插入数组。 (有问题的更新代码)。但是我仍然从帐户插入方法中得到空响应。现在不知道如何进行。
    • 您能否记录实际发送到服务器的 POST 请求的原始正文内容,以便我查看是否有任何遗漏/错误?
    • 发布请求、响应和代码在这里:gist.github.com/Lubna-10p/…。通过调试,我看到 Resource.php 的 'call' 方法成功调用了 'auth->sign' 方法(响应代码 200)。但是,对于镜像 api 调用,它返回响应代码 204(无内容)
    • 您链接的 Gist 中的响应是从 API Explorer 还是从客户端 Javascript 生成的(根据响应标头判断)?这是行不通的,因为您不能通过 Javascript 使用服务帐户流;我需要查看您的 PHP 应用程序正在发送/接收的原始请求和响应。它看起来还怀疑您的请求 URL 包含作为用户名的服务帐户电子邮件地址(它应该是您要添加其帐户的用户的名称),但这不应该导致这个问题。不过,你也会想解决这个问题。
    • 是的。这是来自客户端js。由于服务器限制,我不允许记录原始数据。还有其他数据可以分享吗?我们是在谈论 $service->accounts->insert($userToken, $accountType, $accountName, $postBody); 中的 $accountName 吗?它究竟应该包含什么?用户名或用户电子邮件?我无法在网上找到一个工作示例,这给我带来了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2015-06-02
    • 2018-06-08
    • 2012-06-09
    • 1970-01-01
    • 2019-03-13
    • 2011-09-08
    相关资源
    最近更新 更多