为了账号安全,请及时绑定邮箱和手机立即绑定

Xero PHP API 错误:“您无权访问此资源”

Xero PHP API 错误:“您无权访问此资源”

PHP
紫衣仙女 2023-10-01 16:06:36
我的 Xero API 设置和 OAuth 流程正在运行。我已将“英国演示公司”链接为租户(组织),并已向我的用户授予顾问 • 联系银行账户管理员、薪资管理员 • 费用(管理员)权限(似乎是最高级别),位于此处:https ://go.xero.com/Settings/Users但我仍然收到以下错误。“您无权访问此资源”我已经添加了应涵盖请求并具有有效访问令牌的所有范围,但仍然没有效果。'client_id'     => env('XERO_CLIENT_ID'),'client_secret' => env('XERO_CLIENT_SECRET'),'redirect_uri'  => env('XERO_REDIRECT_URI'),'scope'         => 'openid email profile offline_access accounting.transactions accounting.contacts accounting.contacts.read accounting.reports.read',示例函数进行基本调用以获取帐户内的用户。与 Xero 的连接正常,但一旦我尝试请求任何数据,就会抛出相同的错误。public function testXero() {        $xeroAccessToken = GlobalSetting::where('name', '=', 'xero_access_token')->first();        $xeroTenantOrganisation = GlobalSetting::where('name', '=', 'xero_tenant_organisation_id')->first();        $xero = new XeroApp(            new AccessToken(                array(                    'access_token' => json_decode($xeroAccessToken->value)->id_token                )            ), $xeroTenantOrganisation->value        );        //dd( $xero ); //we have a succesfull connection here...                # Retrieve all contacts        $contacts = $xero->contacts()->get();                                       dd($contacts); //error "You are not permitted to access this resource". }有人遇到过这个问题吗?
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

问题是我id_token在创建new XeroApp类实例时通过了。我无法看到存储在数据库中的 JSON 对象中的所有其他对象(非常大)。有一个实际access_token值与我在通话中创建的其他一些有用信息一起存储。


$xero = new XeroApp(

    new AccessToken(

        array(

            'access_token' => json_decode($xeroAccessToken->value)->access_token,

            'refresh_token' => json_decode($xeroAccessToken->value)->refresh_token,

            'expires' => json_decode($xeroAccessToken->value)->expires,

        )

    ), $xeroTenantOrganisation->value

);


$contacts = $xero->contacts;


dd($contacts);//RESULTS!!! YES

我会保持这个线程开放,以防万一它可以帮助任何人。


查看完整回答
反对 回复 2023-10-01
?
白衣非少年

TA贡献1155条经验 获得超0个赞

很好,保存尼克 - 是的,它id_token可以用于诸如“使用 Xero 注册”之类的事情,如果您的业务运营是财务数据的核心,这可能是一个巨大的优势。

https://developer.xero.com/documentation/oauth2/sign-up

它本质上使您能够在系统中配置帐户(使用解码的 ID 令牌名称/电子邮件)并在单个流程中同步其 Xero 数据。我们发现合作伙伴因此而显着减少了新注册用户的流失。


综上所述, validaccess_token和 thetenant_id是进行授权 API 调用所需的东西。


查看完整回答
反对 回复 2023-10-01
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

我遇到了同样的问题,我意识到我的租户 ID 错误。您必须确定所有凭据。



查看完整回答
反对 回复 2023-10-01
  • 3 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信