Autodesk Forge与php

问题描述

我正在用PHP中的Autodesk Forge开始一个项目,但是我遇到了一个我无法解决的错误。我在该站点https://learnforge.autodesk.io/#/environment/setup/2legged中进行了所有操作,以使用PHP和Node.js创建服务器。在节点上,我获得了成功,但是我的朋友们想在php中取得成功。 有2个错误,我解决了一个: 第一个是:

HP Fatal error:  Uncaught TypeError: Argument 1 passed to Dotenv\Dotenv::create() must be an instance of Dotenv\Repository\RepositoryInterface,string given,called in /Users/.../forgeExample/server/config.php on line 14 and defined in /Users/.../forgeExample/vendor/vlucas/phpdotenv/src/Dotenv.php:83
Stack trace:
#0 /Users/.../forgeExample/server/config.php(14): Dotenv\Dotenv::create('/Users/mackleym...')
#1 /Users/.../forgeExample/server/oauth.php(14): Autodesk\ForgeServices\ForgeConfig::getForgeID()
#2 /Users/.../forgeExample/server/oauth.php(49): Autodesk\ForgeServices\AuthClientTwoLegged->__construct()
#3 /Users/.../forgeExample/index.php(8): include_once('/Users/mackleym...')
#4 {main}
  thrown in /Users/.../forgeExample/vendor/vlucas/phpdotenv/src/Dotenv.php on line 83

我通过将vlucas/phpdotenv中的第14行更改为以下内容,在server/config.php中的帮助下解决了这个问题: $dotenv = Dotenv::create(__DIR);$dotenv = Dotenv::createImmutable(__DIR__);

服务器运行并停止加载带有第二个错误的示例: PHP致命错误:

Uncaught Autodesk\Core\Exception\RuntimeException: The client_id specified does not have access to the api product in /Users/mackleymagalhaes/development/.../forgeExample/vendor/autodesk/core/lib/Auth/TokenFetcher.php:108
Stack trace:
#0 /Users/mackleymagalhaes/development/.../forgeExample/vendor/autodesk/core/lib/Auth/TokenFetcher.php(87): Autodesk\Auth\TokenFetcher->makeRequest('https://develop...',Array)
#1 /Users/mackleymagalhaes/development/.../forgeExample/vendor/autodesk/core/lib/Auth/OAuth2/AbstractOAuth2.php(143): Autodesk\Auth\TokenFetcher->fetch('https://develop...','client_credenti...',Array,Array)
#2 /Users/mackleymagalhaes/development/.../forgeExample/vendor/autodesk/core/lib/Auth/OAuth2/TwoLeggedAuth.php(15): Autodesk\Auth\OAuth2\AbstractOAuth2->fetchAccessToken('authentication/...','client_credenti...')
#3 /Users/mackleymagalhaes/development/.../forgeExample/server/oauth.php(38): Autodesk\Auth\OAuth2\TwoLeggedAuth->fetchToken()
#4 /Users/mackleymagalhaes/developme in /Users/mackleymagalhaes/development/.../forgeExample/vendor/klein/klein/src/Klein/Klein.php on line 954
[Thu Sep  3 16:59:07 2020] [::1]:58380 [200]: GET /api/forge/oss/buckets?id=%23 - Uncaught Autodesk\Core\Exception\RuntimeException: The client_id specified does not have access to the api product in /Users/mackleymagalhaes/development/.../forgeExample/vendor/autodesk/core/lib/Auth/TokenFetcher.php:108
Stack trace:
#0 /Users/mackleymagalhaes/development/.../forgeExample/vendor/autodesk/core/lib/Auth/TokenFetcher.php(87): Autodesk\Auth\TokenFetcher->makeRequest('https://develop...',Array)
#1 /Users/.../forgeExample/vendor/autodesk/core/lib/Auth/OAuth2/AbstractOAuth2.php(143): Autodesk\Auth\TokenFetcher->fetch('https://develop...',Array)
#2 /Users/.../forgeExample/vendor/autodesk/core/lib/Auth/OAuth2/TwoLeggedAuth.php(15): Autodesk\Auth\OAuth2\AbstractOAuth2->fetchAccessToken('authentication/...','client_credenti...')
#3 /Users/.../forgeExample/server/oauth.php(38): Autodesk\Auth\OAuth2\TwoLeggedAuth->fetchToken()
#4 /Users/mackleymagalhaes/developme in /Users/mackleymagalhaes/development/.../forgeExample/vendor/klein/klein/src/Klein/Klein.php on line 954

有人知道这是什么吗?


将我的vlucas / phpdoenv版本降级到^ 3.0.0后,我在控制台上遇到了以下错误:

[2020年9月8日星期二12:12:13] [404] / api / forge / oss / buckets-没有这样的文件 或目录[2020年9月8日星期二09:12:14] PHP严重错误:未捕获 Autodesk \ Forge \ Client \ ApiException:[403]连接到API时出错 (https://developer.api.autodesk.com/oss/v2/buckets)在 .. \ forge-example2 \ vendor \ autodesk \ forge-client \ lib \ ApiClient.php:261 S 大头钉痕迹: #0 .. \ forge-example2 \ vendor \ autodes k \ forge-client \ lib \ Api \ AbstractApi.php(89): Autodesk \ Forge \ Client \ ApiClient-> callApi('/ oss / v2 / buckets','GET', 阵列,'',阵列,'\ Autodesk \ Forge ...','/ oss / v 2 / buckets') #1 .. \ forge-example2 \ vendor \ autodesk \ forge-cl ient \ lib \ Api \ BucketsApi.php(390): Autodesk \ Forge \ Client \ Api \ AbstractApi-> callApi('/ oss / v2 / buckets, 'GET',数组,'',数组,'\ Autode sk \ Forge ...','/ oss / v2 / buckets') #2 .. \ forge-example2 \ vendor \ autodesk \ forge-client \ lib \ Api \ BucketsApi.php(330): Autodesk \ Forge \ Client \ Api \ BucketsApi-> getBucketsWithH ttpInfo(NULL, NULL,NULL) #3 .. \ forge- example2 \ server \ oss.php(47):Autodesk \ Forge \ Client \ Api \ BucketsApi-> getBuckets() #4 D:\ UFU \ for ge-example2 \ index.php(26):Autodesk \ ForgeS服务\ DataManagement-> getBucketsAndObjects() #5 [第954行的.. \ forge-example2 \ vendor \ klein \ klein \ src \ Klein \ Klein.php中的内部乐趣

[2020年9月8日星期二09:12:14] [:: 1]:54087 [200]:GET / api / forge / oss / buckets?id =%23-未捕获 Autodesk \ Forge \ Client \ ApiException:[403]连接到API时出错 ({https://developer.api.autodesk.com/oss/v2/buckets)在D:\ UFU \ forge- example2 \ vendor \ autodesk \ forge-client \ lib \ Ap iClient.php:261堆栈 跟踪: #0 .. \ forge-example2 \ vendor \ autodesk \ forge-client \ lib \ Api \ AbstractApi.php(89):Autodesk \ Forge \ C lient \ ApiClient-> callApi('/ oss / v2 / buckets','GET',Array,'',Array, '\ Autodesk \ Forge ...','/ oss / v2 / buckets') #1 .. \ forge-exam ple2 \ vendor \ autodesk \ forge-client \ lib \ Api \ BucketsApi.php(390): Autodesk \ Forge \ Client \ Api \ Abst ractApi-> callApi('/ oss / v2 / buckets', 'GET',Array,'',Array,'\ Autodesk \ Forge ...','/ oss / v2 / b uckets') #2 .. \ forge-example2 \ vendor \ autodesk \ forge-client \ lib \ Api \ BucketsApi.php(330): Autodesk \ Forge \ Client \ Api \ BucketsApi-> getBuc ketsWithHttpInfo(NULL, NULL,NULL) #3 .. \ forge-example2 \ server \ oss.php(47):Autodesk \ Forge \ Client \ Api \ BucketsApi-> getBuckets() #4 .. \ forge-example2 \ index.php(26):Aut odesk \ ForgeServices \ DataManagement-> getBucketsAndObjects() #5 [在D:\ UFU \ forge-ex ample2 \ vendor \ klein \ klein \ src \ Klein \ Klein.php的第954行的内部乐趣

[2020年9月8日星期二09:12:14] [:: 1]:54087闭幕

解决方法

我遇到了同样的问题,就我而言,它最终是vlucas/phpdotenv依赖项的某些版本不匹配。这是使PHP示例工作(在项目的根文件夹中,使用bash)的工作:

# confirm you have a good version of PHP (in my case it's 7.3.11)
php -v

# remove composer dependencies
rm -rf vendor
rm composer.lock

# setup composer
php -r "copy('https://getcomposer.org/installer','composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
php composer.phar install

# create the .env file
cp server/.env.example server/.env
vim server/.env # add your client ID and client secret

# start the app
php -S localhost:3000 -t .

# now,open your browser and go to http://localhost:3000/www/index.html

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...