2012-01-14 7 views
4

특정 이벤트가 발생하면 앱에서 사용자에게 메시지를 보내려고합니다. 지금은이 코드를facebook apprequests 만들기

$param = array(
    'message'  => 'XYZ shared a file with you', 
    'data'   => 'additiona_string_data', 
    'access_token' => $facebook->getAccessToken(), 
); 
$tmp = $facebook->api("/$uid/apprequests", "POST", $param); 

을 가지고 있지만 난 항상 문제입니다 Uncaught OAuthException: (#2) Failed to create any app request thrown

내가 모르는 얻을.

+0

받은 전체 오류를 포함해야합니다. 이 경우 facebook sdk에서 가져온 것이 분명하지만 전체 오류 문자열을 포함하는 것이 좋습니다. 여기에는 대개 어떤 파일이 오류를 발생 시켰으며 심지어 코드가 어떤 행에 있었는지에 대한 정보가 들어 있습니다. – Lix

답변

8

요청 문서를 읽어야합니다.
두 가지 유형의 요청에 대한 설명이 있습니다.

  • 사용자는 당신이 애플 리케이션은 사용자 토큰에 액세스하지해야합니다 의미합니다 (Graph API와) 생성
  • 응용 프로그램

는 당신이 필요로하는 것은 app generated requests입니다합니다 (request dialog으로) 시작 .

코드 샘플에 facebook 개체 초기화를 포함하지 않았으므로 이미 사용자를 확인한 것으로 간주하므로 getAccessToken() 호출은 사용자 액세스 토큰을 반환하지만 사용자 액세스 토큰은 반환하지 않기 때문에 사용자 액세스 토큰을 사용한다고 가정합니다. 응용 프로그램 액세스 토큰.

+2

올바른 방향으로 나를 가리켜 주셔서 감사합니다. – slash197

1

'특정 이벤트가 발생하면 앱에서 사용자에게 메시지를 보내려고합니다.'라는 의미는 약간 혼란 스럽습니다. 이벤트를 보내는 그들의 벽

  • 에 다른 사람의 게시물이 애플 리케이션에 쓰기 사용자

  • 에 초대 보내는 사용자

  • 에 초대 할 때

    1. 사용자에게 이메일 보내기 'XYZ가 당신과 파일을 공유했습니다.'와 같은 일이 발생하면 사용자 벽.

    당신은 사용자의 emailread_stream 권한이 필요

    1. 대답합니다. RealTime Updates를 사용하여 벽을 모니터 한 다음 서버 SMTP를 사용하여 이메일을 보내십시오.

    2. 는, 당신은 새로운 오픈 그래프 개체/액션을 사용하여이 작업을 수행해야 https://developers.facebook.com/docs/channels/#requests

    3. 참조 @Lix는 지적 이벤트가

    4. 을 초대 만드는 방법에 대한 http://developers.facebook.com/docs/reference/api/event/#invited를 참조하십시오.페이스 북 PHP SDK는 (필요한 경우 오류 처리를 추가)를 사용하여 앱에 대한 사용자 요청을 게시 할 코드 샘플 작업

      https://graph.facebook.com/oauth/access_token?client_id=FB_APP_ID&client_secret=FB_APP_SECRET&grant_type=client_credentials 
      

      :이 예를 참조하십시오 통해 https://developers.facebook.com/docs/beta/opengraph/tutorial/

  • 0

    당신은 페이스 북 응용 프로그램 액세스 토큰을받을 수 있습니다 :

    $facebook = new Facebook(array(
        'appId' => FB_APP_ID, 
        'secret' => FB_APP_SECRET, 
    )); 
    
    $token_url = "https://graph.facebook.com/oauth/access_token?" ."client_id=" . 
        FB_APP_ID ."&client_secret=" . FB_APP_SECRET ."&grant_type=client_credentials"; 
    
    $result = file_get_contents($token_url); 
    $splt = explode('=', $result); 
    $app_access_token =$splt[1]; 
    
    $facebook->setAccessToken($app_access_token); 
    
    $args = array(
        'message' => 'MESSAGE_TEXT', 
    
    ); 
    $result = $facebook->api('/USER_ID/apprequests','POST', $args); 
    
    관련 문제