genesis-global/salesforce-bundle

Symfony 扩展包,提供 OAuth2 认证,并以面向对象的方式暴露 Salesforce REST API 方法。

安装次数: 69,802

依赖: 0

建议者: 0

安全: 0

星标: 11

关注者: 9

分支: 13

公开问题: 4

类型:symfony-bundle

1.3.2 2020-11-25 15:58 UTC

README

Salesforce REST 客户端的 Symfony 扩展包,基于用户名和密码认证。

###使用 Composer 安装包

$ composer require genesis-global/salesforce-bundle

启用扩展包

然后,通过将其添加到项目 app/AppKernel.php 文件中注册的扩展包列表来启用扩展包。

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...

            new GenesisGlobal\Salesforce\SalesforceBundle\SalesforceBundle(),
        );

        // ...
    }

    // ...
}

所需配置

salesforce:
    authentication:
        endpoint: "https://login.salesforce.com/"
        client_id: "id"
        client_secret: "secret"
        username: "name"
        password: "pass",
        security_token: '22s2sd233e3'
    rest:
        version: "v35.0"
        endpoint: "https://yourinstance.salesforce.com"
        

在控制器中使用

创建记录

// custom class which implements SobjectInterface
$case = new Sobject();
$case->setName('Case');
$case->setContent(['someField' => 'someValue']);

$result = $this->get('salesforce.service')->create($case);  

// get salesforce id
$id = $result->getId();

更新记录

try {
    $this->get('salesforce.service')->update('Account', '001D000000INjVe', [ 'someField' => 'someValue' ]);
    
} catch (UpdateSobjectException $e) {
    
    // update failed
    echo $e->getMessage();
}

合并更新记录

// account object
$account = new \stdClass();
$account->Current_Balance__c = '21023';
$account->Current_Count_of_Deposit__c = 0;
$account->Number_of_Active_Days__c = 12;
 
// account sObject ready to send to salesforce
$accountSobject = new Sobject();
$accountSobject->setName('Account');
$accountSobject->setContent($account);

$result = $this->get('salesforce.service')->upsert($sObject, 'Player_Account__c', '123132');

获取元数据

$metaData = $this->get('salesforce.service')->getMetaDataForSobject('Account');