Code Monkey home page Code Monkey logo

forrest's People

Contributors

ahmadwaleed avatar aishuanxiaofeiniu avatar camiloherbert avatar diggersworld avatar emaia avatar grantjanecek avatar jonnott avatar lukeshell-rd avatar matt-moellering avatar n4com avatar nauxliu avatar olofguard avatar omniphx avatar patricknomad avatar paulredmond avatar philperusse avatar pkarastelev avatar pravindahal avatar rajjanorkar avatar rkeppner avatar robdrimmie avatar roblesterjr04 avatar robvh avatar rtconner avatar scottwakefield avatar stevenwoodson avatar tabirkeland avatar toddmcbrearty avatar tomingle avatar zaphell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

forrest's Issues

Storing token and creating a client from this later

In my use case, the user will authenticate via oAuth once, and then we will use their token to make subsequent requests on their behalf. At the moment it looks like your library relies on the presence of a session with the accessToken etc.

I would want to store those in the database, and then use them when needed, do you have any examples of how I can store the necessary parameters after Forrest::authenticate() has been called, also also how to create an instance of Forrest with parameters I have stored in a DB.

Appreciate your help!

Call to undefined method Omniphx\Forrest\Providers\Laravel\ForrestServiceProvider::query()

Hello, apologies for the newbie problem but I've spent quite a bit of time retracing the setup process and am still getting this error.

I get this when I call Forrest::query('SELECT Id, Name FROM Account') from within a controller. I have this at the top of the controller:

use Omniphx\Forrest\Providers\Laravel\ForrestServiceProvider as Forrest;

The query call succeeds when I put it within a route directly and then pass the results to the view using View::make.

I'm on Laravel 5.2 and Forrest 2.1.3.

I've triple checked the app.php config and all looks good there. And figure it must be right if the statement works in the route directly.

Any help is much appreciated!

Thanks

Pagination?

Is there any way to use a Paginator with this?

Sales force callback cors

in my application is enabled using cors , my front end is in a domain and the back end is in another , is working properly if i don't use ajax, but when I try to log into salesforce using ajax , the following error in my callback appears :

XMLHttpRequest cannot load https://my-url-sales/services/oauth2/authorize?respon…lesforce%2Fcallback&state=https://my-url-sales. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

anyone have any solution?

laravel service provider breaks route caching

The routes included in the ForrestServiceProvider contain closures which break route caching in laravel 5.

I may have missed something but these routes dont appear to be used anywhere.

My solution was to extend the service provider and overwrite the boot method.

public function boot()
{
    $this->publishes([
        __DIR__.'/../../../../config/config.php' => config_path('forrest.php'),
    ]);
}

CURLOPT_INFILESIZE is not set so can't use with PHP-VCR & phpunit

I'm trying to use Forrest with PHP-VCR but am experiencing an error. My test code is below, and the phpunit error is below that.

I've looked through the source code highlighted in the stack trace but can't seem to see where the CURLOPT_INFILESIZE option should be set or how to set it. Can you help?

<?php

use VCR\VCR;

class ExampleTest extends TestCase {

    /**
     * @vcr SalesForceVCR
     */
    public function test_intercepts_http_correctly()
    {
        Forrest::authenticate();
    }

}
There was 1 error:

1) ExampleTest::test_intercepts_http_correctly
GuzzleHttp\Exception\RequestException: To set a CURLOPT_READFUNCTION, CURLOPT_INFILESIZE must be set.

/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Client.php:201
/Users/Harrison/Sites/ubs-solomon/vendor/beberlei/assert/lib/Assert/Assertion.php:428
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/Util/CurlHelper.php:180
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/LibraryHooks/CurlHook.php:305
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/LibraryHooks/CurlHook.php:325
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/LibraryHooks/CurlHook.php:154
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/Curl/CurlFactory.php:48
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/Curl/CurlFactory.php:48
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/Curl/CurlAdapter.php:84
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/StreamingProxyAdapter.php:34
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Client.php:193
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Client.php:181
/Users/Harrison/Sites/ubs-solomon/vendor/omniphx/forrest/src/Omniphx/Forrest/Authentications/UserPassword.php:56
/Users/Harrison/Sites/ubs-solomon/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:205
/Users/Harrison/Sites/ubs-solomon/app/tests/functional/Solomon/Repositories/VCR/ExampleTest.php:12
/Users/Harrison/Sites/ubs-solomon/app/tests/functional/Solomon/Repositories/VCR/ExampleTest.php:12

Caused by
VCR\VCRException: To set a CURLOPT_READFUNCTION, CURLOPT_INFILESIZE must be set.

/Users/Harrison/Sites/ubs-solomon/vendor/beberlei/assert/lib/Assert/Assertion.php:193
/Users/Harrison/Sites/ubs-solomon/vendor/beberlei/assert/lib/Assert/Assertion.php:428
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/Util/CurlHelper.php:180
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/LibraryHooks/CurlHook.php:305
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/LibraryHooks/CurlHook.php:325
/Users/Harrison/Sites/ubs-solomon/vendor/php-vcr/php-vcr/src/VCR/LibraryHooks/CurlHook.php:154
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/Curl/CurlFactory.php:48
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/Curl/CurlFactory.php:48
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/Curl/CurlAdapter.php:84
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Adapter/StreamingProxyAdapter.php:34
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Client.php:193
/Users/Harrison/Sites/ubs-solomon/vendor/guzzlehttp/guzzle/src/Client.php:181
/Users/Harrison/Sites/ubs-solomon/vendor/omniphx/forrest/src/Omniphx/Forrest/Authentications/UserPassword.php:56
/Users/Harrison/Sites/ubs-solomon/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:205
/Users/Harrison/Sites/ubs-solomon/app/tests/functional/Solomon/Repositories/VCR/ExampleTest.php:12
/Users/Harrison/Sites/ubs-solomon/app/tests/functional/Solomon/Repositories/VCR/ExampleTest.php:12

Lumen issue

Has anyone gotten this to run in Lumen? I get this

Class session does not exist

Here's the relevant part of the stack trace:

in Container.php line 738
at ReflectionClass->__construct('session') in Container.php line 738
at Container->build('session', array()) in Container.php line 633
at Container->make('session', array()) in Application.php line 205
at Application->make('session', array()) in helpers.php line 39
at app('session') in ForrestServiceProvider.php line 58
at ForrestServiceProvider->Omniphx\Forrest\Providers\Lumen\{closure}(object(Application), array()) in Container.php line 735
at Container->build(object(Closure), array()) in Container.php line 633
at Container->make('forrest', array()) in Application.php line 205
at Application->make('forrest') in Container.php line 1178
at Container->offsetGet('forrest') in Facade.php line 151
at Facade::resolveFacadeInstance('forrest') in Facade.php line 120
at Facade::getFacadeRoot() in Facade.php line 207
at Facade::__callStatic('authenticate', array()) in Monetization.php line 141
at Forrest::authenticate() in Monetization.php line 141

How do I implement "logout"

Hi There
In my logout function

Route::get('/logout', function () {
Forrest::revoke();
Session::flush();
return return Redirect::to('/');
})
It doesn't work. no matter this inside or outside the group middleware.

or Are there ways I can make forrest_token to '' so that it can not login salesforce when logout is click?

Thanks!

Undefined index: query error in Client.php line 342

We are using your package. It's been working fine. But from today we are getting the above error. I checked the salesforce response. It's giving us this repose: TLS 1.0 has been disabled in this organization. Please use TLS 1.1 or higher when connecting to Salesforce using https. I think now slaesfore require to use TLS1.1 for connection. You can look this page: https://help.salesforce.com/apex/HTViewSolution?id=000221207. Is there anything we need to do or you have to fix the issue?

ajax request does not work

was testing the plugin, very good, everything works perfectly using the browser, but with ajax, nothing worked, I do not know which headers or cookies send in the request, would have some example using ajax? grateful.

Feature Reqest - Option to persist token without session.

In our system we literally are calling the SF API from an API of our own. So session based token storage does not persist at all. A cache or file or database storage of the token would be useful for persistence (and thus speed).

Feature Request : Retry on 500 errors

What do you think about a retry option to have this library auto-retry to connect to Salesforce on 500 or 503 or errors? Default it to 0 retries (obviously), but allow something like ..

$response = Forrest::sobjects($resource,[
    'body'      => $params,
    'retries'    => 2,
]);

Usage in a SaaS Application

How could I used this plugin in a SaaS mult-tenant application. Right now, credentials are required to be stored in a config file which is not unique to all users. Is there any way to retrieve these credentials from the DB instead, allowing each user to define their own SalesForce Credentials?

Store tokens forever option

Currently, this codebase doesn't provide a method for storing the tokens forever. This was brought up in #63

Need to add a config option for storing token forever. Something like 'storeForever' => true

Then Cache:put('key','value','expiration'); would becomes Cache::forever('key', 'value'); if its specified in the config file.

enhancement: support for additional flows

I am using this project in a demo app that I'm building. The only problem is that I need to use a different authentication flow (username and password in this case).

I did a terrible hack to get it working locally for my demo. I'd like to see if you have any ideas or recommendations such that the codebase could be refactored in a clean way to support all of the additional flow types?

Thanks!

'No token available in current session'

Hey, got a slight problem I was wondering if you could help. I have also tested with different versions of forrest

Using

app/config/session

  • 'driver' => 'file',

composer

  • "laravel/framework" : "4.2.*"
  • "doctrine/dbal" : "~2.3"
  • "illuminate/support" : "4.2.*,
  • "guzzlehttp/guzzle" : "~5.0"
  • "omniphx/forrest" : "1.1.0"

I keep getting the error

'Omniphx\Forrest\Exceptions\MissingTokenException' with message 'No token available in current session'

Option to output response in 'raw' format

No way to output format into a raw format. This would be useful to using the tooling api to output an xml or json response into a file.

Need to add a config option for raw output.

Caching resources from Salesforce

Hello

When using the UserPassword authentication method and using Forrest::authenticate I notice it calls ->storeResources upon each authentication, which then fetches the resource list.

This request each time gets a list of available resources from Salesforce, for example:
{"tooling":"/services/data/v36.0/tooling","chatter":"/services/data/v36.0/chatter","tabs":"/services/data/v36.0/tabs","appMenu":"/services/data/v36.0/appMenu","quickActions":"/services/data/v36.0/quickActions","queryAll":"/services/data/v36.0/queryAll","commerce":"/services/data/v36.0/commerce","wave":"/services/data/v36.0/wave","exchange-connect":"/services/data/v36.0/exchange-connect",...}

Would it make sense to cache this result rather than cause a x3 on each request (authenticate, get resources and original request)? :)

Undefined index: refresh_token

I get the following exception on callback, please note that there is no option to actually configure refresh tokens, in salesforce under manage my app the refresh token policy is set to "Immediately expire refresh token" there is no option to choose anything else..

in WebServer.php line 129 at HandleExceptions->handleError('8', 'Undefined index: refresh_token', 'E:\Code\vzm\vendor\omniphx\forrest\src\Omniphx\Forrest\Authentications\WebServer.php', '129', array('code' => 'dasdfasdf', 'tokenURL' => 'https://test.salesforce.com/services/oauth2/token', 'response' => object(Response), 'jsonResponse' => array('access_token' => 'asdfasd', 'signature' => 'asdfasdf', 'scope' => 'full', 'id_token' => 'asdf', 'instance_url' => 'https://cs80.salesforce.com', 'id' => 'https://test.salesforce.com/id/asdfasdf', 'token_type' => 'Bearer', 'issued_at' => '1455798605702'))) in WebServer.php line 129

Pass RequestException to SalesforceException

When catching a "RequestException" in the Forrest client it'd be useful if the exception could be passed through to the "SalesforceException" (line 768-776).

For example it'd be useful to get the status code of the exception (for missing records etc.) when catching SalesforceException (at the moment you have to a regex search.. how 80's :P)

RESTClient.php refresh_token error

The json response returned does not have a "refresh_token" key for an of the array items. IT seems that maybe this response format from Force has changed, I replaced refresh_token with id_token and it appears to work as expected.

Here is the format of the response I received from Force:

{
"id" :"",
"issued_at" :"",
"scope" :"",
"instance_url" :"",
"token_type" :"",
"id_token" :"",
"access_token" :""
}

What is 'loginURL' for Salesforce ?

You said,

After saving, you will now be given a Consumer Key and Consumer Secret. Update your config file with values for consumerKey, consumerSecret, loginURL and callbackURI.

I only see 3 : consumerKey, consumerSecret, and callbackURI.
I don't see loginURL.

With that said, what should I put in my credentials settings for login url :

'credentials'    => [

        'consumerKey'    => env('SALESFORCE_CONSUMER_KEY'),
        'consumerSecret' => env('SALESFORCE_CONSUMER_SECRET'),
        'callbackURI'    => env('SALESFORCE_CALLBACK_URI'),
        'loginURL'       => env('SALESFORCE_LOGIN_URL'),  // <----- ????

    ],

Is it https://login.salesforce.com/ ?

All errors are wrapped to Salesforce Response Error

When I hit salesforce API I get proper salesforce error as follows with same arguments. But "forrest" keeps giving me "Salesforce Response Error"

[
{
"message": "Duplicate Username.
The username already exists in this or another Salesforce organization. Usernames must be unique across all Salesforce organizations. To resolve, use a different username (it doesn't need to match the user's email address). ",
"errorCode": "DUPLICATE_USERNAME",
"fields": [
"Username"
]
}
]

Config.php version wording

In the config it is implied that the "version" variable is optional however there is an error when the value is empty. Perhaps a wording change with a default value.

Forrest::next not working?

I think next() does not work. I'm in a hurry today so I can't debug it. Just getting this in here so we can look later.

[{"errorCode":"NOT_FOUND","message":"The requested resource does not exist"}]

If I change next() to get() it works fine. So I think the line below is the culprit.

$url .= '/'.$nextUrl;

No token available in current Session

This one is not actually an issue.
Every x hours, my OAuth authentication seems to expire. I need to go to the /authenticate route.
Is it possible to avoid that? Also, I'm about to build a web project that uses massively SalesForce API to access data very often, is there a way to always have the connection between my Laravel project and SalesForce up? I don't want my end user to go to /authenticate.

Thanks.

Atomic transaction

Hi,

I am using your forrest package to integrate with salesforce, so far it is has been great. Thanks for the package!

I was wondering if it is possible to do atomic transaction while using the rest api within this package? I am asking because I want to test my salesforce repository but want to roll back after a test runs.

If not, do you know if there is an easy way to clean the db back to a predefined state so that I can easily run my tests against a know valid state?

Thanks,
Vasi

Bad Request

I have set up the library using Composer as detailed and entered my credentials in the config files.

When I call Forrest::authenticate(), I receive the following error:

Client error response [url] https://login.salesforce.com/services/oauth2/token [status code] 400 [reason phrase] Bad Request

It occurs when we try and post the data:

$response = $this->client->post($tokenURL, $parameters);

Any clues as to the issue?

Capitalisation mis-match between file includes and directory structure

On a case-sensitive system Forrest fails to load when attempting to include the routes file. ForrestServiceProvider.php is attempting to load routes/UserPassword.php but the actual path is Routes/UserPassword.php (notice the capitalisation of Routes).

Error is: include(/path_to_application/vendor/omniphx/forrest/src/Omniphx/Forrest/Providers/Laravel/routes/UserPassword.php): failed to open stream: No such file or directory

JSON Parse Error When Updating a Record

When successfully updating a Record (using format = JSON), Salesforce returns a response code of 200 and no response body (Salesforce REST API Docs).

It seems that Guzzle (5.3) is trying to json_encode the empty response.

I get the following error:
ParseException in Response.php line 148: Unable to parse JSON data: JSON_ERROR_SYNTAX - Syntax error, malformed JSON

Is there a way to continue to make the request using JSON and but avoid the ParseException?

Thanks for your help.

Config::get('forrest::authRedirect') not working

Hi,

Config::get('forrest::authRedirect');

did not work for me, I needed to change it to Config::get('forrest.authRedirect');

Also the expire_in setting doesnt work for me, it always sets it to 20 minutes.

Lastly, is there an option to set the refresh token to never expire?

forrest.php is not generated when executing php artisan vendor:publish

I added "omniphx/forrest": "2.0.*@dev" in composer.json.
I adde services provider and alias. Then, I ran php artisan vendor:publish

On CLI, I got Publishing complete for tag []!

I noticed forrest.php is not generated.

Did I do anything wrong ? Is it an intended behavior ? Please kindly advise.

authenticate() best practices

In order to execute a query or any operation you previously had to execute the authenticate() method.
Where this authentication is stored? I don't want to authenticate every time so I was thinking of saving a Singleton instance of Forrest and re-use it as required.

Is there any "best practice" on how to implement this?

I'm using User-Password flow.

Thanks for this great plugin.

Regards,
--Aldo

Can't insert records

Hi there.

I'm trying to insert records into Salesforce from my application and I modified the examples given to insert into the Lead object instead. For example, I used

$body = ['Name' => 'Bart Simpson'];
Forrest::sobjects('Lead', [
'method' => 'post',
'body' => $body
]);

But the lead won't show up in Salesforce, nor does it show up when I use
Forrest::query('SELECT Name FROM Lead')

However, it works perfectly fine if I insert into Account.

Could anyone shed some light on what I'm doing wrong?

Laravel 5 compatability?

Hi, really want to use this with Laravel 5, I'm running a fresh copy of Laravel 5 but with Forrest installed I get the following error..

BadMethodCallException in ServiceProvider.php line 226:
Call to undefined method [package]
in ServiceProvider.php line 226
at ServiceProvider->__call('package', array('omniphx/forrest', null, '/home/vagrant/Code/Laravel/vendor/omniphx/forrest/src/Omniphx/Forrest/Providers/Laravel/../../../..')) in ForrestServiceProvider.php line 22
at ForrestServiceProvider->package('omniphx/forrest', null, '/home/vagrant/Code/Laravel/vendor/omniphx/forrest/src/Omniphx/Forrest/Providers/Laravel/../../../..') in ForrestServiceProvider.php line 22
at ForrestServiceProvider->boot()
at call_user_func_array(array(object(ForrestServiceProvider), 'boot'), array()) in Container.php line 523
at Container->call(array(object(ForrestServiceProvider), 'boot')) in Application.php line 631
at Application->bootProvider(object(ForrestServiceProvider)) in Application.php line 613
at Application->Illuminate\Foundation{closure}(object(ForrestServiceProvider), '19')
at array_walk(array(object(EventServiceProvider), object(RoutingServiceProvider), object(AuthServiceProvider), object(ControllerServiceProvider), object(CookieServiceProvider), object(DatabaseServiceProvider), object(EncryptionServiceProvider), object(FilesystemServiceProvider), object(FormRequestServiceProvider), object(FoundationServiceProvider), object(PaginationServiceProvider), object(SessionServiceProvider), object(ValidationServiceProvider), object(ViewServiceProvider), object(AppServiceProvider), object(BusServiceProvider), object(ConfigServiceProvider), object(EventServiceProvider), object(RouteServiceProvider), object(ForrestServiceProvider), object(BusServiceProvider)), object(Closure)) in Application.php line 614
at Application->boot() in BootProviders.php line 15
at BootProviders->bootstrap(object(Application)) in Application.php line 165
at Application->bootstrapWith(array('Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\RegisterProviders', 'Illuminate\Foundation\Bootstrap\BootProviders')) in Kernel.php line 142
at Kernel->bootstrap() in Kernel.php line 103
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 83
at Kernel->handle(object(Request)) in index.php line 53

Hope you can help I'm keen to build a app for SalesForce using this.
Thanks in advance

Put method not allowed

When I tried updating a record using the PUT HTTP method, Salesforce API complained and said that method wasn't allowed.

Allow' => array('HEAD,GET,PATCH,DELETE')

It appears like API v33.0 wants to use the PATCH method, instead. You can simply replace method => put with method => patch and everything is ok.

Undefined index sobjects

I have a long-running PHP process with the following storage configuration:

...
...
...
    'storage'        => [
        'type'      => 'session', // 'session' or 'cache' are the two options
        'path'      => 'forrest_', // unique storage path to avoid collisions
        'expire_in' => 10080, // number of minutes to expire cache/session
    ],
...
...
...

It works fine for a few hours... but then after a few hours, I get Undefined index sobjects. The error occurs in Client.php (586):

...
...
...
    public function __call($name, $arguments)
    {
        $url = $this->getInstanceUrl();
        $url .= $this->storage->get('resources')[$name]; // <- error on this line

        $options = [];
...
...
...

Will post trace later.

It's probably because of how laravel handles session expiry. Graceful handling of this would be helpful.

Programmatically choose authentication

First off, great package.

Working on an application where I want users to use WebServer authentication, but I would like to be able to have backend scheduled processes use UserPassword authentication such that I can aggregate expensive SOQL results.

Currently any way of doing this?

Config::set('forrest.authentication', 'UserPassword'); ?

Refresh token flow is not working.

First thanks for your awesome library. in your UserPassword class request method if the token expired it should go to the catch and get the refresh token. But your TokenExpiredException class is undefined because you don't have that in the namespace. We fixed that by doing: use Omniphx\Forrest\Exceptions\TokenExpiredException;

Debug response

Why if I var_dump() the result of Forrest::sobjects() I get false if something went wrong?
I was hopping getting SalesForce error message, no?

EventInterface not implemented in Lumen Service Provider

FatalThrowableError in UserPassword.php line 15:
Type error: Argument 2 passed to Omniphx\Forrest\Authentications\UserPassword::__construct() must implement interface Omniphx\Forrest\Interfaces\EventInterface, instance of Omniphx\Forrest\Providers\Laravel\LaravelCache given, called in /home/vagrant/Code/api2.gohubble.com/vendor/omniphx/forrest/src/Omniphx/Forrest/Providers/Lumen/ForrestServiceProvider.php on line 64

This happened after I updated from version 5.2.0 to the latest version.

Salesforce & TLS 1.0 phase-out

I've just had an email from SalesForce saying:

"Over the next 12 months, Salesforce is preparing to disable TLS 1.0 encryption in a phased approach to prevent it from being used to access the Salesforce service during inbound and outbound connections. [...] After Salesforce disables TLS 1.0 encryption, any channels connecting to Salesforce will need to use TLS 1.1 encryption or higher. Channels attempting to connect to Salesforce using encryption protocols lower than TLS 1.1 will NOT be able to connect to Salesforce. This includes browsers and any integrations to Salesforce APIs using unsupported encryption protocols."

Do you know whether this affects Forrest or does it use a different protocol to connect?

Thanks, Harrison

Undefined index: sobject

As soon as I try to create/update a sObject using:

$body = ['Name' => 'New Account'];
Forrest::sobject('Account',[
    'method' => 'post',
    'body'   => $body]);

I get the ErrorException (E_UNKNOWN) saying "Undefined index: sobject"

Problem with Token being set

I keep getting this. Do I need to explicitly set the token that comes from the authenicate methos

MissingTokenException in LaravelStorageProvider.php line 32:
No token available in 'session' storage

in LaravelStorageProvider.php line 32
at LaravelStorageProvider->getTokenData() in Client.php line 491
at Client->getTokenData() in Client.php line 503
at Client->getInstanceUrl() in Client.php line 458
at Client->__call('sobjects', array('Account', array('method' => 'post', 'body' => array('Name' => 'New Account')))) in Facade.php line 213
at WebServer->sobjects('Account', array('method' => 'post', 'body' => array('Name' => 'New Account'))) in Facade.php line 213
at Facade::__callStatic('sobjects', array('Account', array('method' => 'post', 'body' => array('Name' => 'New Account')))) in routes.php line 24
at Forrest::sobjects('Account', array('method' => 'post', 'body' => array('Name' => 'New Account'))) in routes.php line 24
at RouteServiceProvider->{closure}()
at call_user_func_array(object(Closure), array()) in Route.php line 157
at Route->runCallable(object(Request)) in Route.php line 129

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.