PHP Coinbase API not working on live but localhost - coinbase-api

I'm developing a system that will send BTC to a certain receiver via coinbase php api. The system is working fine in my localhost but after moving it to live it doesn't work and no error message. I tried tracing an error step by step by echoing the -3 and run the script and I found that when I put the echo after
$account = $client->getPrimaryAccount();
echo -3;
...I've got a white page and no -3 as a test result.
Here's the full construction of this process:
$apiKey = "dfdsfsd";
$apiSecret = "fdsfdsfsfdff";
$configuration = Configuration::apiKey($apiKey, $apiSecret);
$client = Client::create($configuration);
$_btc_wallet = #$_GET['_btcwallet'];
$_btc_amount = #$_GET['_btc_amount'];
$transaction = Transaction::send([
'toBitcoinAddress' => $_btc_wallet,
'bitcoinAmount' => $_btc_amount,
'description' => 'Group Fund Transfer',
]);
$account = $client->getPrimaryAccount();
echo -3;
$client->createAccountTransaction($account, $transaction);
echo 1;
exit;
Need help badly.... :-(

Tl;dr. You must install and run Composer and add this line before
the rest of your code:
require __DIR__ . '/vendor/autoload.php';
Coinbase PHP API uses Composer to handle its dependencies, so that following the install procedure detailed on Github is mandatory to avoid headaches.
Composer reads a configuration file provided by the author of the Coinbase PHP API, and creates automatically a directory structure that contains all the dependencies needed, and, most important, an autoload script.
PHP used to be 100% self contained, having a plethora of functions and classes already built in, so many PHP coders (me for example) had some problems to switch to a more modular approach, someway similar to the Python style with its pip command or to PEAR in Perl galaxy, and so on, with some important differences, of course.
So, be sure to follow this sequence:
1) Let's say you are on Linux, you have a local web server installed, and the document root of your web site is /var/www/newsite.
2) Enter the your document root, download the latest Coinbase PHP API release and untar/unzip it. I suggest to go for the releases, and not to clone the repository.
$
$ cd /var/www/newsite
$
$ tar xzvf coinbase-php-2.5.0.ta.gz
3) Now you need to download Composer. Go to its homepage at https://getcomposer.org/ and click on Download. Follow the instructions in the Command-line installation section.
I report them here for convenience, but they may change so always check the Composer's homepage. From your document root:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
4) last step, run Composer and wait while he does the job:
$ php composer.phar install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 26 installs, 0 updates, 0 removals
- Installing guzzlehttp/promises (v1.3.1): Downloading (100%)
- Installing psr/http-message (1.0.1): Downloading (100%)
- Installing guzzlehttp/psr7 (1.4.2): Downloading (100%)
- Installing guzzlehttp/guzzle (6.2.3): Downloading (100%)
- Installing psr/log (1.0.2): Downloading (100%)
- Installing symfony/yaml (v3.2.8): Downloading (100%)
- Installing sebastian/version (1.0.6): Downloading (100%)
- Installing sebastian/global-state (1.1.1): Downloading (100%)
- Installing sebastian/recursion-context (1.0.5): Downloading (100%)
- Installing sebastian/exporter (1.2.2): Downloading (100%)
- Installing sebastian/environment (1.3.8): Downloading (100%)
- Installing sebastian/diff (1.4.2): Downloading (100%)
- Installing sebastian/comparator (1.2.4): Downloading (100%)
- Installing doctrine/instantiator (1.0.5): Downloading (100%)
- Installing phpunit/php-text-template (1.2.1): Downloading (100%)
- Installing phpunit/phpunit-mock-objects (2.3.8): Downloading (100%)
- Installing phpunit/php-timer (1.0.9): Downloading (100%)
- Installing phpunit/php-file-iterator (1.4.2): Downloading (100%)
- Installing phpunit/php-token-stream (1.4.11): Downloading (100%)
- Installing phpunit/php-code-coverage (2.2.4): Downloading (100%)
- Installing webmozart/assert (1.2.0): Downloading (100%)
- Installing phpdocumentor/reflection-common (1.0): Downloading (100%)
- Installing phpdocumentor/type-resolver (0.2.1): Downloading (100%)
- Installing phpdocumentor/reflection-docblock (3.1.1): Downloading (100%)
- Installing phpspec/prophecy (v1.7.0): Downloading (100%)
- Installing phpunit/phpunit (4.8.35): Downloading (100%)
symfony/yaml suggests installing symfony/console (For validating YAML files using the lint command)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
Writing lock file
Generating autoload files
$
5) Mind the last line above. The examples on the Github's README of the Coinbase PHP API are a little bit misleading, since Composer is nice and creates a file called autoload.php which must be used to load the new libraries the proper way.
So, here is your code modified to use it, thus loading all the needed dependencies:
<?php
require __DIR__ . '/vendor/autoload.php';
$apiKey = 'topsecret';
$apiSecret = 'topkey';
$configuration = Configuration::apiKey($apiKey, $apiSecret);
$client = Client::create($configuration);
$account = $client->getPrimaryAccount();
The line:
require __DIR__ . '/vendor/autoload.php';
should make the difference. Without it, the script exits with no errors on screen, but with many errors in the php log file, but this behaviour depends on the server configuration.
Hope this helps!

Related

Matlab integration - Run and test Matlab VOLTTRON Integration - pyzmq error+ volltron/config. path

Below the steps followed to integrate a fake building - fake modbus device (Ubuntu 16.04 LTS) with matlab-based interface.
Following the documentation steps at: http://volttron.readthedocs.io/en/4.1/devguides/walkthroughs/DrivenMatlabAgent-Walkthrough.html
Installation steps for system running Matlab:
Install python (my Python versions: 3.6.3 and 2.7.12)
Install pyzmq following the steps at (https://github.com/zeromq/pyzmq): I use pip install pyzmq
I get
Requirement already satisfied: pyzmq in ./env/local/lib/python2.7/site-packages
Steps for system running Matlab:
Install python – done
Install pyzmq –done
Install Matlab-- done (R2017b)
run pyversion --done
version: '2.7'
executable: '/home/USER_NAME/volttron/env/bin/python'
library: 'libpython2.7.so.1.0'
home: '/home/USER_NAME/volttron/env'
isloaded: 0
when I run py.zmq.pyzmq_version() I get
ans =
Python str with no properties.
15.4.0
I copied the example.m to the desktop.
Run and test Matlab VOLTTRON Integration:
To run and test the integration:
Assumptions
Device driver agent is already developed (master_driveragent-3.1.1- is installed)
Installation:
Install VOLTTRON –done
Add subtree volttron-applications under volttron/applications by using the following command –
For adding subtree: I used the code:
git subtree add --prefix applications https://github.com/VOLTTRON/volttron- applications.git develop --squash
error
(Working tree has modifications. Cannot add.)
Configuration
Copy example configuration file applications/pnnl/DrivenMatlabAgent/config_waterheater to volltron/config. (I could not find a path called config?)
Questions
Please is there any issue in pyzmq ?
In the volttron root I run the subtree command, why it is not accepting to add the subtree?
What is the volltron/config. path?
Thanks,
Looks like you have you have local changes in your cloned volttron directory. Please stash or commit those changes before adding subtree.
If config folder does not exists you can create it (I will make a note of it in the documentation as well) It is only a location to copy the config file to make changes ( config_url and data_url )

Polymer starter kit gulp error

after downloading and extracting psk1.2.1 and running npm install and bower install, when i run gulp i get the following output
MacBook-Pro-van-Marco:testb mspro$ gulp
[21:18:46] Using gulpfile ~/www/studies/polymer/testb/gulpfile.js
[21:18:46] Starting 'clean'...
[21:18:46] Finished 'clean' after 5.66 ms
[21:18:46] Starting 'default'...
[21:18:46] Starting 'copy'...
[21:18:46] Starting 'styles'...
[21:18:47] styles all files 98 B
[21:18:47] Finished 'styles' after 559 ms
[21:18:48] copy all files 12.75 MB
[21:18:48] Finished 'copy' after 1.72 s
[21:18:48] Starting 'elements'...
[21:18:48] Finished 'elements' after 3.49 ms
[21:18:48] Starting 'lint'...
[21:18:49] Starting 'images'...
[21:18:49] Starting 'fonts'...
[21:18:49] Starting 'html'...
[21:18:49] Finished 'fonts' after 142 ms
[21:18:51] Finished 'lint' after 2.41 s
[21:18:51] html all files 52.36 kB
[21:18:51] Finished 'html' after 1.35 s
[21:18:51] gulp-imagemin: Minified 6 images (saved 494 B - 1.4%)
[21:18:51] images all files 35.41 kB
[21:18:51] Finished 'images' after 1.64 s
[21:18:51] Starting 'vulcanize'...
ERROR finding /Users/mspro/www/studies/polymer/testb/dist/bower_components/paper-behaviors/paper-button-behavior.html
ERROR finding /Users/mspro/www/studies/polymer/testb/dist/bower_components/paper-behaviors/paper-inky-focus-behavior.html
the paper-behaviors folder was empty (except for the README.md)
i then copied the content of the bower_components/paper-behaviors folder of the psk-light download and the error was gone, but starting the demo with gulp resulted in an empty page
looking at the console in chrome i get following errors:
Uncaught TypeError: Polymer.IronMeta is not a function
/deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.
iron-icon.html:168 Uncaught TypeError: this._meta.byKey is not a function
page.js:797 Uncaught TypeError: Cannot read property 'length' of undefined
here's where i give up for now,
my node version is v4.2.4 on mac osx 10.10.5
Chrome 47.0.2526.106 (64-bit)
does anyone have a idea how to solve this problem?
thanks
It would be helpful to include the actual commands you ran and which version of the PSK you tried. Here are the steps I followed and was able to get the PSK installed and run gulp and gulp serve without error.
Download Polymer Starter Kit
Under Intermediate - Advanced Users click on polymer-starter-kit-1.2.1.zip
Extract ZIP file to preferred location
Install Node.js if needed before running the next step
With Node.js installed, run the following one liner from the root of your Polymer Starter Kit download:
npm install -g gulp bower && npm install && bower install
OR if admin permission is needed:
sudo npm install -g gulp bower && npm install && bower install
NOTE: This step takes a few minutes to install all of the dependencies.
Then start the web server using this one liner from the root of your Polymer Starter Kit download:
gulp serve

How to intall drush on hostgator servers

I would like to have Drush on Hostgator shared hosting. I just spent 1 hour trying various outdated tutorials (Drush now requires composer). Does somebody have proved, tested and working solution how to install Drush there? I'm using PHP 5.4.
My last achieved step is drush st error:
Unable to load autoload.php. Drush now requires Composer in order to install its dependencies and autoload classes. Please see README.md
Content-type: text/html
When I run php composer.phar diagnose I see:
Content-type: text/html
Warning: Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity: OK
Checking disk free space: OK
Checking composer version: OK
Incase it helps others, I had been using a variety of google inspired resources to install Drush, which just complicated the situation for me. I would highly recommend following the official documentation which is the main source of information. I even read on there that they only maintain the documentation here, not even on drupal.org.
I was missing this step based on other instructions,
Now add Drush to your system path by placing export
PATH="$HOME/.composer/vendor/bin:$PATH"
into your ~/.bash_profile (Mac OS users) or into your ~/.bashrc (Linux users).
These instructions helped me resolve the error:
curl -sS https://getcomposer.org/installer | php mv composer.phar
/usr/local/bin/composer ln -s /usr/local/bin/composer
/usr/bin/composer
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush
cd /usr/local/src/drush git checkout 7.0.0-alpha5 #or whatever
version you want. ln -s /usr/local/src/drush/drush /usr/bin/drush
composer install drush --version
I think you are trying to use Drush version 7.x.
Try using Drush 6.x, I don't think it requires composer. Drush releases. I have had drush 6.4 installed on shared hosting environment successfully without any problems.

Cake PHP 3.0.*-dev error?

[root#skadi:/var/www/mailinglist]$ composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for cakephp/cakephp 3.0.*-dev -> satisfiable by cakephp/cakephp[3.0.x-dev].
- cakephp/cakephp 3.0.x-dev requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
Problem 2
- cakephp/cakephp 3.0.x-dev requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
- cakephp/debug_kit 3.0.x-dev requires cakephp/cakephp 3.0.*-dev -> satisfiable by cakephp/cakephp[3.0.x-dev].
- Installation request for cakephp/debug_kit 3.0.*-dev -> satisfiable by cakephp/debug_kit[3.0.x-dev].
Try this
sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
on Ubuntu 13.10 and later there is a problem for migration of php modules configuration from /etc/php5/conf.d to /etc/php5/mods-available
If you don't solve verify the mcrypt library
updatedb
locate mcrypt.so
locate mcrypt.ini
Just for the record, as I didn't find a solution anywhere for Arch Linux: If you happen to use composer from the extra repository (extra/php-composer), it's actually not enough to enable the mcrypt extension in /etc/php/php.ini because the global composer script uses its own ini-file (/usr/share/php-composer/php.ini).
To fix the mcrypt error, you can either:
Enable mcrypt extension globally and run composer using php /usr/bin/composer.
Add mcrypt extension to /usr/share/php-composer/php.ini and prevent pacman from overwriting your changes by adding NoUpgrade = usr/share/php-composer/php.ini to /etc/pacman/pacman.conf.
I had this problem when I tried to install laravel with composer on my MAC Yosemite.
This was the error message I got from the terminal:
laravel/framework v5.0.16 requires ext-mcrypt * -> the requested PHP
extension mcrypt is missing from your system.
I followed these instructions to install mcrypt on my MAC:
http://coolestguidesontheplanet.com/install-mcrypt-php-mac-osx-10-10-yosemite-development-server/
And that fixed the problem
Composer was blocking my install of cakephp because of a dependency on mcrypt, despite the fact that mcrypt was installed and working in my php configuration.
I finally realized that Composer was checking the cli mode of php, and I resolved the dependency by simply copying mcrypt.ini from /etc/php5/conf.d to /etc/php5/cli/conf.d.

Is it normal that zendframework/zend-http package requires 49 components?

Here's the composer.json:
{
"repositories": [
{
"type": "composer",
"url": "https://packages.zendframework.com/"
}
],
"require": {
"zendframework/zend-http": "2.*"
}
}
... and the exhaustive list:
Authentication Code Db Escaper Filter InputFilter Log Mime Paginator Server Stdlib Uri XmlRpc
Barcode Config Debug EventManager Form Json Mail ModuleManager Permissions ServiceManager Tag Validator
Cache Console Di Feed Http Ldap Math Mvc ProgressBar Session Test Version
Captcha Crypt Dom File I18n Loader Memory Navigation Serializer Soap Text View
Some of them actually make sense. But what about Barcode,Captcha,Navigation or even Dbfor instance?
Edit
$ rm -rf vendor
$ rm -rf ~/.composer/
$ rm composer.lock
$ more composer.json
{
"require": {
"zendframework/zend-http": "2.*"
}
}
$ composer self-update
You are using the latest composer version.
$ composer install
Loading composer repositories with package information
Installing dependencies
- Installing zendframework/zendframework (2.1.3)
Downloading: 100%
zendframework/zendframework suggests installing doctrine/common (Doctrine\Common >=2.1 for annotation features)
zendframework/zendframework suggests installing ext-intl (ext/intl for i18n features)
zendframework/zendframework suggests installing pecl-weakref (Implementation of weak references for Zend\Stdlib\CallbackHandler)
zendframework/zendframework suggests installing zendframework/zendpdf (ZendPdf for creating PDF representations of barcodes)
zendframework/zendframework suggests installing zendframework/zendservice-recaptcha (ZendService\ReCaptcha for rendering ReCaptchas in Zend\Captcha and/or Zend\Form)
Writing lock file
Generating autoload files
PS: pleased that some consider my question as simply good to be closed ... I really thank the others for having tryed to answer.
It doesn't.
Using that composer.json file, I get this:
$ composer.phar install
Loading composer repositories with package information
Installing dependencies
- Installing zendframework/zend-stdlib (2.1.3)
Downloading: 100%
- Installing zendframework/zend-servicemanager (2.1.3)
Downloading: 100%
- Installing zendframework/zend-filter (2.1.3)
Downloading: 100%
- Installing zendframework/zend-i18n (2.1.3)
Downloading: 100%
- Installing zendframework/zend-validator (2.1.3)
Downloading: 100%
- Installing zendframework/zend-escaper (2.1.3)
Downloading: 100%
- Installing zendframework/zend-uri (2.1.3)
Downloading: 100%
- Installing zendframework/zend-loader (2.1.3)
Downloading: 100%
- Installing zendframework/zend-http (2.1.3)
Downloading: 100%
zendframework/zend-stdlib suggests installing pecl-weakref (Implementation of weak references for Stdlib\CallbackHandler)
zendframework/zend-servicemanager suggests installing zendframework/zend-di (Zend\Di component)
zendframework/zend-filter suggests installing zendframework/zend-crypt (Zend\Crypt component)
zendframework/zend-validator suggests installing zendframework/zend-db (Zend\Db component)
zendframework/zend-validator suggests installing zendframework/zend-math (Zend\Math component)
Writing lock file
Generating autoload files
The full list of dependencies that zend-http has are:
Escaper
Filter
i18n
Loader
ServiceManager
StdLib
Uri
Validator

Resources