Hello_I'm使得Facebook的帆布App和我试图获得邀请好友的过程工作。 我有我的多的朋友选择做,它的正确发送邀请,但我现在想无论何时邀请的人增加了应用程序,以奖励的邀请。
我觉得这样做正确的做法是,每当一个新的用户开始使用应用程序来运行检查。 我试图通过查询Facebook的图形API来做到这一点,看看新的用户有一个apprequest
我的应用程序,如果他们这样做,那么我想找出谁传这人/人的ID(或ID)新的用户邀请请求。
要尝试找出如何做到这一点,我有3个邀请(从3个不同的账户)发送到一个帐户,现在如果我登录的邀请接收器,然后用这个代码查询Facebook的图形API控制台: /v2.3/me/apprequests?fields=from,id
它返回:
{"data": [
{
"from": {
"id": "1234526161534",
"name": "John Doe"
},
"id": "14677152342565_827362417384",
"created_time": "2015-05-19T21:35:11+0000"
},
{
"from": {
"id": "4777221325314",
"name": "Jane Doe"
},
"id": "1683273626362_827362417384",
"created_time": "2015-05-19T20:50:14+0000"
},
{
"from": {
"id": "1015521200905293",
"name": "Di Do"
},
"id": "1251333932735_827362417384",
"created_time": "2015-05-19T20:50:08+0000"
}
]}
所以它的显示我3个不同的人送我apprequests
的应用。 它给我它们的ID,他们的名字,并与被邀请人的ID连接起来的唯一请求ID。
目前,我能够单独抢者编号,但我想送他们通过AJAX数组PHP脚本,然后我想将它们插入到使用PDO准备语句如果可能的话我的数据库。
这是我当前的代码:
/* making the API call */
FB.api(
'me/apprequests?fields=from,id',
function (response) {
if (response && !response.error) {
var requestid = response.data[0].from.id;
var requestid1 = response.data[1].from.id;
var requestid2 = response.data[2].from.id;
console.log(response.data[0].from.id);
console.log(response.data[1].from.id);
console.log(response.data[2].from.id);
$.ajax({
url: 'reward.php',
data: {'requestid' : requestid,
'requestid1' : requestid1,
'requestid2' : requestid2},
type: "POST",
success: function(response){
if(response==1){
alert("Reward Applied!");
}
else{
alert("Reward Failed!");
}
}
});
}
}
);
虽然我能够的ID发送给PHP文件作为独立变量var requestid, var requestid1, var requestid2
然后分别插入他们,这不是一个很好用的方法,如请求ID的数量会有所不同,所以不是送他们每个人作为独立变量,我想我需要把他们送到一个数组,但我不确定如何做到这一点。
我现在的PDO插入交易是这样的:
reward.php
<?php
$servername = "myservername";
$username = "myusername";
$password = "mypassword";
$dbname = "mydbname";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->beginTransaction();
// Defining the three request IDs
$requestid = $_POST['requestid'];
$requestid1 = $_POST['requestid1'];
$requestid2 = $_POST['requestid2'];
// Insert first request ID
$stmt = $conn->prepare("INSERT INTO requestids (requestid) VALUES (:requestid)");
$stmt->bindParam(':requestid', $requestid);
$requestid = $_POST['requestid'];
$stmt->execute();
// Insert second request ID
$stmt = $conn->prepare("INSERT INTO requestids (requestid) VALUES (:requestid1)");
$stmt->bindParam(':requestid1', $requestid1);
$requestid = $_POST['requestid1'];
$stmt->execute();
// Insert third request ID
$stmt = $conn->prepare("INSERT INTO requestids (requestid) VALUES (:requestid2)");
$stmt->bindParam(':requestid2', $requestid2);
$requestid = $_POST['requestid2'];
$stmt->execute();
$conn->commit();
echo "1";
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
?>
这是行不通的,如果一个人从3万余人请求时,它真正需要的是一个数组来代替。 我是很新,PDO和交易,以及没有任何使用数组的工作经验。 我真的很感激任何帮助,这在所有,感谢这么多提前!