I'm trying to use the google-api-php-client SDK along with google plus api service. The documentation isnt very clear. Do I search activities? Do I need to get an oAuth token to do what i want?
Update: Now using
$params = array(
'orderBy' => 'best',
'maxResults' => '20',
'query' => 'Google+ API'
);
$results = $plus->activities->search($params);
returns
Array
(
[kind] => plus#activityFeed
[etag] => "5NTCbsXue5u92XtxuV0QeM_x9B4/58mHUy-IErItGIABIAhYhhUjJ-M"
[selfLink] => https://www.googleapis.com/plus/v1/activities?query&maxResults=10
[title] => Plus Search
[updated] => 2012-09-27T14:03:35.132Z
[id] => tag:google.com,2010:es-search-feed:z80ghJXVZe9m59_5-Ydk2g
[items] => Array
(
)
)
I had a same problem and here is how I have done it:
$query = "some query";
$params = array(
'orderBy' => 'best',
'maxResults' => '20',
);
$results = $plus->activities->search($query, $params);
foreach($results['items'] as $result) {
print "Result: {$result['object']['content']}\n";
}
Even dough in an examples query is a part of parameters it is not. It should be sent as separated value as you can see in the implementation of the search method for plus service Link
Hope this helps you.
You don't need an OAuth token to search activities. You only need to register a Developer Key in the Google APIs Console.
Register a Developer Key in the Google APIs Console.
Check out the latest version of the Google APIs PHP Client .
Take a look at the Google+ sample app. https://code.google.com/p/google-api-php-client/source/browse/trunk/examples/plus/index.php
Sample:
$params = array(
'orderBy' => 'best',
'maxResults' => '20',
'query' => 'Google+ API'
);
$results = $plus->activities->search($params);
foreach($results['items'] as $result) {
print "Result: {$result['object']['content']}\n";
}
Related
Pretty specific problem, but I'll lay it out as best I can.
I can easily make a POST request to the TradeGecko API (detailed here: http://developer.tradegecko.com/) and get variant prices in return, that part of the interaction is working smoothly.
However, I'm trying to create a new order and I feel like I'm missing something!
Here's what I have:
<?php
$authorizeUrl = 'https://api.tradegecko.com/oauth/authorize';
$accessTokenUrl = 'https://api.tradegecko.com/oauth/token';
$clientId = <MY_CLIENT_ID>;
$clientSecret = <MY_CLIENT_SECRET>;
$redirectUrl = <REDIRECT_URI>;
// https://github.com/adoy/PHP-OAuth2
require("Client.php");
require("GrantType/IGrantType.php");
require("GrantType/AuthorizationCode.php");
$client = new OAuth2\Client($clientId, $clientSecret, OAuth2\Client::AUTH_TYPE_AUTHORIZATION_BASIC);
$client->setCurlOption(CURLOPT_USERAGENT,$userAgent);
$client->setAccessToken(<MY_ACCESS_TOKEN>);
$client->setAccessTokenType(OAuth2\Client::ACCESS_TOKEN_BEARER);
$params =
array('order' =>
array(
'company_id' => '12345',
'shipping_address_id' => 1,
'billing_address_id' => 1,
'status' => 'active',
'issued_at' => '10-04-2016',
'order_line_items' => array(
array('variant_id' => 123456,
'quantity' => 2),
array('variant_id' => 123457,
'quantity' => 2)
)
)
);
$response = $client->fetch('https://api.tradegecko.com/orders', false, $params);
print_r($response);
?>
I'm hoping that there's something in that code that someone else might spot, I've been staring at it for the better part of 6 hours now, and I can't figure out why this won't go through.
I'm using Quickbooks' Hosted Paypage and I have, up to this point, managed to get everything to work except for the order information. I don't receive any errors. The paypage continues to work with or without the order-related code.
I'm unsure exactly how to go about this and I can't find any relevant examples. I assume that I'm formatting something incorrectly, but I have no idea what if I am.
Below is the relevant code. I took out the applogin and authticket, but those are correct.
<?php
$order = '{"Items":[
{"ItemSku":"NA","ItemDesc":"Party Hats","ItemPrice":"1.00","ItemQty":"1","ItemIsShippable":"0","ItemIsTaxable":"0"},
{"ItemSku":"NA","ItemDesc":"Extra Guests","ItemPrice":"1.08","ItemQty":"1","ItemIsShippable":"0","ItemIsTaxable":"0"}],
"EstDeliveryDate": "01/01/2080"}';
// I've tried with and without this line
$order = json_decode($order, true);
/*---------------------------------------
Paypage
---------------------------------------*/
if ($NoErrors = true) {
// Intuit Base URL
$base_url = 'https://paymentservices.intuit.com/';
// Construct URL for Intuit ticket
$ticket = array(
'AuthModel' => 'desktop',
'AppLogin' => 'xxx.xxx.com',
'AuthTicket' => 'xxx-xxx-xxxx',
'TxnType' => 'Sale',
'Amount' => $Amount,
'CustomerName' => $CustomerFullName,
'CustomerStreet'=> $CustomerStreet,
'CustomerCity' => $CustomerCity,
'CustomerState' => $CustomerState,
'CustomerPostalCode'=> $CustomerPostalCode,
'IsCustomerFacing' => '1'
);
array_push($ticket, $order);
// Go to Intuit ticket URL
$ticket_url = $base_url . "paypage/ticket/create?" . http_build_query($ticket);
$print_ticket = file_get_contents($ticket_url);
Thank you for your time!
After rereading the documentation, I found I missed 'Order=' from the URL. I removed the json_decode line and then added "'Order' => $order" to the end of my $ticket array. That got it working.
$ticket = array(
'AuthModel' => 'desktop',
'AppLogin' => 'xxxx',
'AuthTicket' => 'xxxx',
'TxnType' => 'Sale',
'Amount' => $Amount,
'CustomerName' => $CustomerFullName,
'CustomerStreet'=> $CustomerStreet,
'CustomerCity' => $CustomerCity,
'CustomerState' => $CustomerState,
'CustomerPostalCode'=> $CustomerPostalCode,
'IsCustomerFacing' => '1',
'Order' => $order
);
I have been trying to learn how to access the soap services of Web of knowledge using PHP. I am using the code below, which I downloaded from https://gist.github.com/domoritz/2012629.
<?php
$auth_url = "http://search.isiknowledge.com/esti/wokmws/ws/WOKMWSAuthenticate?wsdl";
$auth_client = #new SoapClient($auth_url);
$auth_response = $auth_client->authenticate();
$search_url = "http://search.isiknowledge.com/esti/wokmws/ws/WokSearchLite?wsdl";
$search_client = #new SoapClient($search_url);
$search_client->__setCookie('SID',$auth_response->return);
$search_array = array(
'queryParameters' => array(
'databaseID' => 'WOS',
'userQuery' => 'AU=Douglas T*',
'editions' => array(
array('collection' => 'WOS', 'edition' => 'SSCI'),
array('collection' => 'WOS', 'edition' => 'SCI')
),
'queryLanguage' => 'en'
),
'retrieveParameters' => array(
'count' => '5',
'fields' => array(
array('name' => 'Date', 'sort' => 'D')
),
'firstRecord' => '1'
)
);
try{
$search_response = $search_client->search($search_array);
} catch (Exception $e) {
echo $e->getMessage();
}
print_r($search_response);
?>
The code seems to be working. However, the $search_response I receive is
"User has no entitlement for this service level - WOKSearchLight". I am trying to access this piece of data from a server that is inside an institution that has access to the web of knowledge, and I am actually connected to web of knowledge using http://apps.webofknowledge.com/UA_GeneralSearch_input.do?product=UA&search_mode=GeneralSearch&SID=4Dd8nnfofoOm#7#5KH6&preferencesSaved=.
Can anyone tell me what is happening? Do I need an extra permission of the site?
I really appreciate any help!
Yes you need to register first at http://ip-science.thomsonreuters.com/info/ws_form/?agree=0&x=31&y=12 and enter your IP address, then it should work I think...
I'm trying to post a photo using the php-sdk - all was working for months successfully but all of the sudden no dice.
Other functions are still working with the same code base (ie: posting messages to wall) - its just the posting of photos that broke on my side.
try {
$data = $facebook->api('/me/photos', 'post', $args);
} catch (FacebookApiException $e) {
print_r($e);}
Is dumping:
FacebookApiException Object ( [result:protected] => Array ( [error_code] => 3 [error] => Array ( [message] => No URL set! [type] => CurlException ) ) [message:protected] => No URL set! [string:private] => [code:protected] => 3 [file:protected] => /locationofmy/base_facebook.php [line:protected] => 818 [trace:private] => Array ( [0] => Array [..............]
From the FB php-sdk lines 818:
if ($result === false) {
$e = new FacebookApiException(array(
'error_code' => curl_errno($ch),
'error' => array(
'message' => curl_error($ch),
'type' => 'CurlException',
),
));
curl_close($ch);
throw $e;
}
curl_close($ch);
return $result;
}
This was working for a long time - has something changed on Facebooks side?
EDIT: php-sdk version: 3.1.1
EDIT 2:
$tag = array(
'tag_uid' => 'acct_num',
'x' => 0,
'y' => 0
);
$tags[] = $tag;
$args = array(
'message' => $item_description,
'image' => '#' . realpath($temp_path . $tempFile),
'tags' => $tags,
);
Probably that the file doesnt exist, or the file system can't serve it anymore. Can you confirm "$temp_path . $tempFile" - the error is no URL, usually that means no real path to image. I suspect, that the images are missing and/or your servers filled up and no local images are saving. (Yes, this has happened to me before!)
Try changing the image to source. I believe this should fix your issue.
The Facebook API requires a source field but I did not see anything about an image field.
You may also have to pass the actual file contents instead of the real_path (based on the example). Or, alternatively, pass an external URL (based on my understanding of the documentation).
Source: https://developers.facebook.com/docs/reference/api/photo/
Example: https://developers.facebook.com/blog/post/498/
I need to generate the following XML with SOAP:
...
<InternationalShippingServiceOption>
<ShippingService>StandardInternational</ShippingService>
<ShippingServiceCost currencyID="USD">39.99</ShippingServiceCost>
<ShippingServicePriority>1</ShippingServicePriority>
<ShipToLocation>CA</ShipToLocation>
</InternationalShippingServiceOption>
...
So I have the following SOAP array in PHP to do this:
$params = array(
'InternationalShippingServiceOption' => array(
'ShippingService'=>'StandardInternational',
'ShippingServiceCost'=>39.99,
'ShippingServicePriority'=>1,
'ShipToLocation'=>'CA',
)
)
$client = new eBaySOAP($session); //eBaySOAP extends SoapClient
$results = $client->AddItem($params);
Everything works great, except I am not generating the currencyID="USD" attribute in the ShippingServiceCost tag in the XML. How do I do this?
You don't need to use SoapVar. This works (for me at least):
$params = array(
'InternationalShippingServiceOption' => array(
'ShippingService'=>'StandardInternational',
'ShippingServiceCost' => array('_' => 39.99, 'currencyID' => 'USD')
'ShippingServicePriority'=>1,
'ShipToLocation'=>'CA',
)
)
I'm using this technique with the PayPal SOAP API.
Why, I am glad you asked. I just solved this today.
$shippingsvccostwithid = new SoapVar(array('currencyID' => $whatever),SOAP_ENC_OBJECT, 'ShippingServiceCost', 'https://your.namespace.here.com/');
$params = array("InternationalShippingServiceOption" => array(
"ShippingService" => "StandardInternational",
"ShippingServiceCost" => $shippingsvccostwithid,
"ShippingServicePriority" => 1,
"ShipToLocation" => "CA"
);
And then continue as normal.
Please let me know if you need any more help.