2012-12-26 4 views
1

참고 : 사용자가 내 앱 사용 권한을 수락하면. 나는 그들이 받아들이도록 요청한다. manage_notifications"이 리소스를 요청하려면 사용자 액세스 토큰이 필요합니다." 알림 용 Facebook 그래프

나는 혼란 스럽다. 나는 이것을 웹에서 조사한 결과, deprecated와 잘못된 정보가 혼합되어있는 것처럼 보였고 facebook 그래프를 사용하여 내 facebook canvas 앱을 사용하여 사용자에게 알림을 보내려고합니다. 다음은 어떻게 작동하는지, 작동하지 않는지입니다.

public function getAccessToken() { 
    $app_id = $this->settings['app_id']; 
    $app_secrete = $this->settings['app_secrete']; 
    $url = "https://graph.facebook.com/oauth/access_token?". 
      "client_id={$app_id}". 
      "&client_secret={$app_secrete}". 
      "&grant_type=client_credentials"; 
    $c = curl_init($url); 
    // necessary so CURL doesn't dump the results on your page 
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
    $result = curl_exec($c); 
    $result = explode("=", $result); 
    curl_close ($c); 
    return $result[1]; 
} 

결과는 access_token=523216317ewwer235|K4A1XugBpajwrweu1K2k12jzckdU과 같이 전달됩니다. 그래서 나는 코드 내에서 = 기호를 폭발시킵니다. 사용자가 내 앱을 시작할 때마다이 함수를 호출합니다. 다음 코드에서 액세스 코드를 받아 $token으로 전달합니다.

curl_setopt ($c, CURLOPT_POST, true);

분명히 당신이 만들고있는 GET 요청을하려고 :

public function alertUser($userid,$token,$message="You have a notification") { 
    $inviteMessage = $message; 
    $inviteMessage = urlencode($inviteMessage); 
    $url = "https://graph.facebook.com/{$userid}/notifications?access_token={$token}&". 
    "template={$inviteMessage}&ref=notify"; 
    $c = curl_init($url); 
    // necessary so CURL doesn't dump the results on your page 
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
    $result = curl_exec($c); 
    curl_close ($c);   
    $r = json_decode($result); 
} 

나는 당신 알림 작동하게하기 위해 POST 요청을 사용해야합니다

object(stdClass) { 
    error => object(stdClass) { 
     message => 'A user access token is required to request this resource.' 
     type => 'OAuthException' 
     code => (int) 102 
    } 
} 

답변

5

다음과 같은 응답을 얻을 자원을 요청하십시오.

+0

나는 당신이 옳을 수도 있다고 생각합니다. params를 postData로 설정해야한다고 생각합니다. 나는 그것을 시도하고 게시물을 업데이 트합니다. 지난 1 시간 동안 내 코드가 많이 변경되었습니다. – numerical25

+1

작품, 고마워요. – numerical25