aferalabs / traum
traum-ferienwohnungen.de API 客户端
0.2.1
2016-04-07 22:32 UTC
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: ^6.1
- league/fractal: ^0.13.0
Requires (Dev)
- dshafik/guzzlehttp-vcr: dev-master
- instaclick/php-code-sniffer: ^1.4
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-19 05:48:42 UTC
README
Traum 是 clientapi.traum-ferienwohnungen.de 的 API 客户端。
开始之前 ...
... 注册。为了开始使用 API,您需要使用注册资源进行注册。提供一些关于用户的基本信息并执行一次。如果请求正确,您就可以开始使用 API。记得确认您的账户。
use Traum\Client; use Traum\Entity; use Traum\Enum; $client = Client::create(); $register = new Entity\Register( [ 'first_name' => 'John', 'last_name' => 'Doe', 'email' => 'john.doe@example.com', "salutation_id" => Enum\Salutation::MR, "password" => "Pa**word!" ] ); $resource = $client->createRegisterResource(); $result = $resource->post($register); // returns Entity\Register
创建客户端
注册后,API 用户需要分配给您想通过 API 管理的客户。为此,请使用客户资源。
use Traum\Client; use Traum\Entity; use Traum\Enum; // Get the customer_id from your customer account. $customer = new Entity\Customer( [ Entity\Customer::CUSTOMER_ID => 123456 ] ); $client = Client::create(['auth' => ['john.doe@example.com', 'Pa**word!']]); $result = $client->createCustomerResource()->post($customer); // returns Entity\Customer
创建列表
为了隐藏 API 的低级细节,您可以使用提供的服务。
列表服务
为了方便创建列表,您可以使用该服务快速创建新列表。
$client = \Traum\Client::create(['auth' => ['john.doe@example.com', 'Pa**word!']]); // You can obtain customerId from the customer resource or just read it from // configuration, if you manage more than one customer. $customerId = $client->createCustomerResource()->collection()->current()->getCustomerId(); $response = $client->createListingService()->addListing( $customerId, [ 'objectType' => \Traum\Enum\ObjectType::APARTMENT, 'emailType' => \Traum\Enum\EmailType::HTML_TEXT, 'accessibilityId' => \Traum\Enum\Accessibility::GROUND_LEVEL, 'classificationStarId' => \Traum\Enum\ClassificationStar::ONE_STAR, 'classificationExpireDate' => '2017-01-01', 'maxPersons' => 4, 'size' => 120 ], [ // You do not have to provide all the translations. \Traum\Enum\TextTypeId::LISTING_TITLE => [ \Traum\Enum\Language::DEU => 'German LISTING_TITLE', \Traum\Enum\Language::ENG => 'English LISTING_TITLE', ], \Traum\Enum\TextTypeId::SHORT_DESCRIPTION => [ \Traum\Enum\Language::DEU => 'German SHORT_DESCRIPTION', \Traum\Enum\Language::ENG => 'English SHORT_DESCRIPTION', ], \Traum\Enum\TextTypeId::LANDLORD_DESCRIPTION => [ \Traum\Enum\Language::DEU => 'German LANDLORD_DESCRIPTION', \Traum\Enum\Language::ENG => 'English LANDLORD_DESCRIPTION', ], \Traum\Enum\TextTypeId::ARRIVAL_DESCRIPTION => [ \Traum\Enum\Language::DEU => 'German ARRIVAL_DESCRIPTION', \Traum\Enum\Language::ENG => 'English ARRIVAL_DESCRIPTION', ], \Traum\Enum\TextTypeId::SPECIAL_ATTRIBUTES => [ \Traum\Enum\Language::DEU => 'German SPECIAL_ATTRIBUTES', \Traum\Enum\Language::ENG => 'English SPECIAL_ATTRIBUTES', ], \Traum\Enum\TextTypeId::FREE_TIME_ACTIVITIES => [ \Traum\Enum\Language::DEU => 'German FREE_TIME_ACTIVITIES', \Traum\Enum\Language::ENG => 'English FREE_TIME_ACTIVITIES', ], \Traum\Enum\TextTypeId::LISTING_DESCRIPTION => [ \Traum\Enum\Language::DEU => 'German LISTING_DESCRIPTION', \Traum\Enum\Language::ENG => 'English LISTING_DESCRIPTION', ], \Traum\Enum\TextTypeId::ENVIRONMENT_DESCRIPTION => [ \Traum\Enum\Language::DEU => 'German ENVIRONMENT_DESCRIPTION', \Traum\Enum\Language::ENG => 'English ENVIRONMENT_DESCRIPTION', ], \Traum\Enum\TextTypeId::VACATION_AREA_DESCRIPTION => [ \Traum\Enum\Language::DEU => 'German VACATION_AREA_DESCRIPTION', \Traum\Enum\Language::ENG => 'English VACATION_AREA_DESCRIPTION', ], \Traum\Enum\TextTypeId::SERVICE_AVAILABILITY => [ \Traum\Enum\Language::DEU => 'German SERVICE_AVAILABILITY', \Traum\Enum\Language::ENG => 'English SERVICE_AVAILABILITY', ], ] ); // returns \Traum\Entity\Listing
图片服务
为了方便创建图片,请使用图片服务批量添加多张图片。
$client = \Traum\Client::create(['auth' => ['john.doe@example.com', 'Pa**word!']]); // Use listing from the step before. $listing = $client->createListingService()->addListing(/* ... */); $client->createPictureService()->addPictures( $listing->getId(), [ [ 'pictureUrl' => 'http://example.com/picture-outdoor.jpeg', 'categoryId' => \Traum\Enum\PictureCategory::OUTDOOR, 'titles' => [ \Traum\Enum\Language::DEU => 'German OUTDOOR', \Traum\Enum\Language::ENG => 'English OUTDOOR', ], ], [ 'pictureUrl' => 'http://example.com/picture-environment.jpeg', 'categoryId' => \Traum\Enum\PictureCategory::ENVIRONMENT, 'titles' => [ \Traum\Enum\Language::DEU => 'German ENVIRONMENT', \Traum\Enum\Language::ENG => 'English ENVIRONMENT', ], ], // ... and more ] );
想要帮忙吗?
查看 路线图 并实现一个缺失的端点。
待办事项
- 完成文档
- 实现缺失的资源
- 修复代码中的待办事项
- 完成测试