2

사용자가 쿠폰과 비슷한 것을 얻을 수있는 웹 앱을 개발 중입니다. 사용자가 쿠폰을 선택하고 요청할 때마다 Javascript SDK를 사용하여 Open Graph로 게시해야합니다.URL 쿼리 문자열을 사용하여 동적으로 Facebook Open Graph를 표시합니다.

쿠폰을 클릭하면 coupondetail.php?cid=248 ("Cid"는 쿠폰 ID) 페이지로 리디렉션됩니다. 실제로 저는 PHP로 og 메타 태그를 개인화합니다 :이 방법으로 Facebook은 각 ?cid에 대해 다른 내용을 다 써야합니다.

이것은 실제로 PHP를 사용하여 개인 설정하는 방법입니다. (Mycouponapp는 샘플 이름입니다!).

<head> 
    <meta charset="ISO-8859-1"> 
    <title>Coupons</title> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xmlns:fb="https://www.facebook.com/2008/fbml"> 
<head prefix="og: http://ogp.me/ns# mycouponapp: 
        http://ogp.me/ns/apps/mycouponapp#"> 
    <meta property="fb:app_id" content="*appid*" /> 
    <meta property="og:type" content="mycouponapp:reward"/> 
    <meta property="og:title" content="<?php echo $couponname; ?>" /> 
    <meta property="og:image" content="http://www.mycouponapp.com/<?php echo $couponimgurl; ?>" /> 
    <meta property="og:description" content="<?php echo $couponname; ?>" /> 
    <meta property="og:url" content="http://www.mycouponapp.com/coupondetail.php?cid=<?php echo $cid; // coupon id ?>"> 

열흘 전에 나는 웹 사이트를 테스트하고 있었고, 난 "샘플 보상"을 호출, 정적 og:title을 설정합니다. 코드를 변경하더라도 오늘 자바 스크립트를 사용하여 작업을 게시하면 "Matteo는 Mycouponapp에 쿠폰 이름을 가져 왔습니다"라는 표시 대신 "Matteo가 ​​Mycouponapp에 샘플 보상을 받았습니다."라는 메시지가 표시됩니다.

는 이미 콘텐츠를 다시 긁어 시도하는 페이스 북의 디버깅 도구를 사용하지만, 그것은 작동하지 않습니다 (디버깅 도구는 정확한 쿠폰 세부 사항을 사용하더라도!)

또한, 나는 "샘플의 클릭하면 Reward "텍스트 http://www.mycouponapp.com/coupondetail.php?rid=으로 리디렉션됩니다. 보시다시피, Cid이 없습니다.

나는 이유를 정말로 이해할 수 없다. 내 JavaScript 코드를 자릅니다 : 아마 그 문제가 있습니다! Facebook JS SDK가이 전에로드되었습니다.

<script> 
function postCoupon() 
    { 

    FB.login(function(response) { 
    if (response.authResponse) { 

     FB.api(
     '/me/_AppName_:get?reward=http://www.mycouponapp.com/coupondetail.php?cid=<?php echo $rid; ?>', 
     'post', 
     function(response) { 
      if (!response || response.error) { 
       console.log(response.error); 
      } else { 

       alert('Pook was successful! Action ID: ' + response.id); 
      } 
     }); 
     } 
}, {scope: 'publish_actions'}); 


    } 
    </script> 

    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : '_App Id_', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
     }); 
    }; 



    </script> 

내 코드에 무슨 문제가 있습니까? 감사!

+2

http://facebook.stackoverflow.com/questions/11084260/open-graph-wrong-title-in-action/11086544#11086544 같은 문제가 있습니까? – Igy

+0

불행히도 나는 디버거에서 경고가 없으므로 업데이트를 강제하기 위해 100 개가 넘는 작업을 게시 했으므로 아니오라고 가정합니다. –

+1

100 개가 넘는 게시물을 게시하지 않으셨습니까? 아니면 그랬니? 그랬다면 그 URL에서 더 이상 제목을 바꿀 수 없습니다. – Igy

답변

1

이 시점에서 가장 좋은 방법은 URL 체계를 mycouponapp.com/coupondetail/248과 같이 변경하여 각 쿠폰마다 고유 한 URL이 있도록하는 것입니다.

.htaccess 파일에서 URL을 다시 쓰거나 PHP 앱의 URL 스키마를 변경하여이 작업을 수행 할 수 있습니다.

+1

매개 변수가 정상적으로 작동해야합니다. OP가 올바르게 작동하지 않거나 처음에 전달 된 매개 변수와 동일한 og : url 값을 사용하지 않았을 수 있습니다. – Igy

관련 문제