Unable to retrieve lead data from Facebook in my local CRM - facebook

I want to get all the lead information related to all the form in my campaign in the Facebook lead ads management, how can i improve my below code to get the Facebook lead data.
require_once __DIR__ . '/autoload.php';
use FacebookAds\Api;
use FacebookAds\Http\Response;
use FacebookAds\ApiRequest;
use FacebookAds\Object\LeadgenForm;
use FacebookAds\Object\Page;
use FacebookAds\Object\Lead;
use FacebookAds\Object\Ad;
use FacebookAds\Cursor;
use FacebookAds\Object\Fields\AdReportRunFields;
use FacebookAds\Http\Request;
$api = api::init($app_id, $app_secret, $user_access_token);
$accounts = Api::instance();
$page = new Page($my_page_id);
$leadgen_forms = $page->getLeadgenForms();
foreach($leadgen_forms as $forms){
$data = $forms->getData();
$csv_url = $data['leadgen_export_csv_url'];
//print "<a href='".$csv_url."' title='download'>Download ".
$data['name']." Data</a><br/>";
$form_id = $data['id'];
$form = new LeadgenForm($form_id);
$form_content = $form->getLeads();
//var_dump($form_content);
print_r($form_content);
}
I have used all the function available in the lead API.

Related

How can i recieve pushed message from google pubsub

I Have created new topic and new subscription and set delivery type: push and set end point URL :
index.php :
<?php
print_r($_POST);
$data = json_encode($_POST);
print_R($data);
$fp = fopen('data.txt', 'a+');
fwrite($fp, $data);
fclose($fp);
?>
When publish message i want to process the data from this end point as an example save data to file.
the file is created but with empty array [].
any issue in my php code, does the data store in $_POST or i need to use another way.
To fetch Pub/Sub messages, you need to use the Google Pub/Sub library. Given that you've set your subscription endpoint to your URL, the code should look like something similar to this:
use Google\Cloud\PubSub\PubSubClient;
$projectId = "YOUR-PROJECT-ID";
$subscriptionName = "YOUR-SUBSCRIPTION-NAME";
$pubsub = new PubSubClient([
'projectId' => $projectId,
]);
$subscription = $pubsub->subscription($subscriptionName);
$pullMessages = [];
foreach ($subscription->pull(['returnImmediately' => true]) as $pullMessage) {
$pullMessages[] = $pullMessage;
$msg = $pullMessage->data();
$fp = fopen('data.txt', 'a+');
fwrite($fp, $msg);
fclose($fp);
}
// acknowledge PULL messages
if ($pullMessages) {
$subscription->acknowledgeBatch($pullMessages);
}
You can find an example here. As well as a more in-detail explanation here.

how to use insert record function in moodle

I am trying to insert record into my database using moodle.
I am using version 1.9.19. i am trying the following code :
<?php
require_once('config.php');
require_once('uplo.php');
$mform = new uplo();
$mform->display();
if(isset($_POST['submitbutton'])){
$name = $mform->get_data('name');
$email = $mform->get_data('email');
$table='mdl_tet';
$res=insert_record($table, '$name','$email') ;
}
?>
But this is not working correctly. How to do that correctly.
Note : Why am using 1.9.19 means my client using this version so i cant change the version.
The insert_record() function takes two parameters - the name of the table (without the prefix) and an object containing the data to insert into the table.
So, in this case, you should write something like:
$ins = (object)array('name' => $name, 'email' => $email);
$ins->id = insert_record('tet', $ins);
OR:
$ins = new stdClass();
$ins->name = $name;
$ins->email = $email;
$ins->id = insert_record('tet', $ins);
(As an aside - make sure you turn on debugging - https://docs.moodle.org/19/en/Debugging - it will make your life a lot easier).

Posting to a WEB API from Perl results in a null value in [FromBody]

We have created a WEB API (in .NET framework 4.0) and gave the endpoint info to one of our clients. They created a program in Perl that posts to our endpoint.
Every post they have made so far arrives into our endpoint as null. When we initially started programming, we had that same issue in JQuery when posting by means of $.ajax. We solved it by adding a '=' at the beginning of the post data.
The Perl code they have submitted is the following:
sub _postPackages {
my ($self,$dataToSend) = #_;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->agent("integrationapp/1.0 ");
# Create a request
my $req = HTTP::Request->new(POST => $self->{postAddress} );
$req->content_type("application/json;charset=utf-8");
$req->content($dataToSend->{data});
#print Data::Dumper->Dump([$req]);
# Pass request to the user agent and get a response back
my $res = $ua->request($req);
where postAddress is our endpoint and $dataToSend is the message data. Is it possible that they need to add the '=' at the beginning of the $dataToSend message.
Any help will be greatly appreciated.
This is a bit of pseudo code here..
But I'm guessing you want to do something like this:
# some post sub
my ($self, $data) = #_;
my $ua = $self->get_user_agent();
my $json_xs = $self->get_json_xs();
my $json_encoded = $json_xs->utf8->encode($data);
$self->set_post_data($json_encoded);
$self->set_api_call();
my $response_body = $ua->post(
$self->get_api_call(),
'Content' => $self->get_post_data(),
'Content-type' => "application/json;charset=UTF-8"
);
print STDERR "POSTING NEW RESOURCE: " . Dumper($self);

Parse HTTP:Response object

I am having some difficulties getting results from a form via Perl. I believe I have successfully found the form and submitted the value I want to the appropriate field, but am unsure of how to turn the response object into something useful (If I print it out it shows up as the following).
HTTP::Request=HASH(0x895b8ac)
Here is the relevant code (assume $url is correct)
my $ua = LWP::UserAgent->new;
my $responce = $ua->get($url);
my #form = HTML::Form->parse($responce);
my $chosen = $form[0];
$chosen->value('netid', $user);
my $ro = $chosen->click('Search');
What can I do to make $ro useful?
Thanks!
To quote the HTML::Form docs on click:
The result of clicking is an HTTP::Request object that can then be passed to LWP::UserAgent if you want to obtain the server response.
So you can do:
my $ua = LWP::UserAgent->new;
my $response = $ua->get($url);
my #form = HTML::Form->parse($response);
my $chosen = $form[0];
$chosen->value('netid', $user);
my $ro = $chosen->click('Search');
# If you want to see what you're sending to the server:
print $ro->as_string;
# Fetch the server's response:
$response = $ua->request($ro);
What you do with $response next depends on what you're trying to do.
P.S. "responce" is usually spelled without a C. But HTTP does have a history of misspellings. (I'm looking at you, "Referer".)

Getting user info after login for facebook application

I have written a small piece to get the user to login :
<?php
include_once ('facebook.php');
$api_key = 'xxxxxxxxxxxxx';
$secret = 'xxxxxxxxxxxxx';
global $facebook;
$facebook = new Facebook($api_key, $secret);
$facebook->require_frame();
#Ask user to login if not logged in
$is_tab = isset($_POST['fb_sig_in_profile_tab']);
if( !$is_tab ){
$uid = $facebook->require_login($required_permissions = 'email,status_update,offline_access');
}
else{
$uid = $facebook->get_profile_user();
}
I need to retrieve the users info once I have the uid. Unfortunately I cannot find the api calls for it and there is a no IDE for facebook :(. Can anyone point me to the api's or give me here. I want to get users username, city, zipcode.
I coudnt get this to work : facebook.Schema.user user = api.users.getInfo();
I think it is for the new API lib.
Thanks.
P.S: I am not using graph APIs, because I found them to be poorly documented and I got stuck with them for a while so decided to abandon them atleast for now.
You can get it like this:
$user_info = $facebook->api_client->users_getInfo($uid, "name, city, zipcode");
print_r($user_info);
More Info:
http://developers.facebook.com/docs/reference/rest/users.getInfo