페이스북 앱 로그인 체크시  not_authorized 가 리턴되면서

로그인 창이 그냥 닫혀 버리는 문제가 발생하는 경우가 있다.

정상적으로 서비스 중인 앱에서는 발생하지 않고,

개발모드인 앱에서만 발생하는데

이때는 Edit App 페이지에서 Sandbox Mode를 Disabled 해주거나

Enabled 상태에서 로그인 체크하려는 회원에게 앱에 대한 권한을 주면 된다.

Enagled 상태는 개발모드이므로....

Edit App 페이지
https://developers.facebook.com/apps/app_id/summary/
(ex : https://developers.facebook.com/apps/664431983586177/summary/)


사용자 삽입 이미지

Posted by incree

2013/08/07 22:44 2013/08/07 22:44
, , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/250

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

function friends(){
	close_popup();
	FB.ui({
		'method':'apprequests',
		'message':'요청할 내용'
	}, function(apprequests_res){
		for (var i = 0; i < apprequests_res.to.length; i++) {
			$.post('./add_friends.php', {'friend_id' : apprequests_res.to[i]});
        }
	});
	return false;
}

Posted by incree

2013/01/02 15:20 2013/01/02 15:20
,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/184

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

페이스북 좋아요 버튼을 동적으로 페이지에 삽입하는 경우

화면에 표시되지 않는다.

이 경우엔느 다음 함수를 한번 호출해 주면 된다

FB.XFBML.parse();


예 ======>

$.ajax({
                type:'POST',
                url:'../ajax/ajax.getLikeButton.php',
                data:'key=111',
                dataType:'xml',
                error:function(xhr, textStatus) {
                },
                success:function(resultXML) {
                    if($('error', resultXML).text() == 0) {
/**
* result xml
<likeButton><fb:like href="http://www.incree.com" send="false" layout="button_count" width="74" show_faces="false"></fb:like></likeButton>
*/
                        $('#likeButton').html($('likeButton', resultXML).text());
                   
                        if(fbSdkObj != undefined) FB.XFBML.parse();
                    }
                    else {
                        alert($('errorMsg', resultXML).text());
                        closePop();
                    }
                }
            });


<div id="fb-root"></div>
<script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ko_KR/all.js#xfbml=1&appId=" + fb_appId;
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

Posted by incree

2012/10/26 19:34 2012/10/26 19:34
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/169

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[SNS][PHP] 페이스북 페이지 탭 작업

1. 페이스북 앱 개발자 페이지에서 (https://developers.facebook.com/apps)
Create New App 클릭

2. 정보 입력 -
사용자 삽입 이미지

3. 페이지 탭 액티베이트(메뉴에나 오게..) ***
http://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=http://facebook.com
YOUR_APP_ID는 2번에서 입력하면 발행된다 그 id를 입력하고
반드시 저  페이지를 실행해 줘야 메뉴에 나오게 된다


4. 페이지 작업 - signed_request ( 페이지 좋아요를 해야 이벤트 참여가능하게 )
php - http://developers.facebook.com/docs/authentication/signed_request/
java - http://www.incree.com/tc/incree/88


5. 캐쉬 삭제 - 페이지 작업시 바로 바로 적용 안되는 경우는 캐쉬를 삭제해 준다
http://developers.facebook.com/tools/debug

6. 이벤트 참여자의 추가 정보를 얻고 싶을 때는 oauth 사용
http://developers.facebook.com/docs/reference/php/facebook-api
권한이 없을 경우 $facebook->getUesr()은 항상 0이 나오는데
로그인 페이지를 통해서 권한을 획득해야 한다.
$facebook->getLoginUrl() 추가 파라미터로 scope에 획득할 권한을
쉼표로 추가해 주면된다

https://www.facebook.com/dialog/oauth?
    client_id=YOUR_APP_ID
   &redirect_uri=YOUR_REDIRECT_URI
   &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
   &state=SOME_ARBITRARY_BUT_UNIQUE_STRING

대략 이런 형태

권한은 http://developers.facebook.com/docs/authentication/permissions/ 에서 확인


* ie에서
---------------------------
웹 페이지의 메시지
---------------------------
<br />
<b>Fatal error</b>:  Uncaught Exception: 102: Requires user session
  thrown in <b>/home/increeworks/www/ohmycar/common/include/facebook-php-sdk/base_facebook.php</b> on line <b>1106</b><br />
 : 200 : OK : parsererror
---------------------------
확인  
---------------------------

오류 날때
header('p3p: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"');
http://stackoverflow.com/questions/4467326/facebook-app-works-on-all-browsers-but-not-ie8



** 기타 : 좋아요, 댓글등...
https://developers.facebook.com/docs/plugins/


** 가끔 좋아요가 안 먹힐때
1. 좋아요 누르면 숫자 올라갔다가 다시 돌아오면서 확인으로 바뀌는 경우
대부분 좋아요와 연결된 페이지에 에러가 발생해서 생기는 문제
연결된 페이지에 에러가 없나 확인해보자
위의 캐쉬 삭제 파일에 페이지 주소 넣어보면 쉽게 확인 가능
2. 권한이 있는 페이지인 경우 권한을 허용하지 않으면 에러


** 보내기를 팝업창으로 띄울때
javascript:void(window.open('https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.increeworks.com%2Fpms%2Ffacebook%2Fsamsung%2F20120619%2Fforeignmadecar_share.html', 'sharer', 'width=626,height=436,toolbar=0,status=0'));


** 페이지 탭의 댓글 전체 가져오기
<?php
include '../common/include/basic.lib.php';
include '../common/include/facebook-php-sdk/facebook.php';

$DBCon->DBClose();

$limitNum = 50;

$fbObj = new FaceBook(array('appId' => $_iwtGlobalVariable['facebook']['appId'], 'secret' => $_iwtGlobalVariable['facebook']['appSecret'], 'cookie' => true));
$fbPk =  $fbObj->getUser();

if(!$fbPk) {
    $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' . $app_id . '&redirect_uri=' . urlencode($my_url) ;
    echo("<script>top.location.href='" . $dialog_url . "'</script>");
    exit;
}

$fql = 'SELECT uid,username,first_name,middle_name,last_name,name,birthday,birthday_date,sex,email,pic_small from user where uid = ' . $fbPk;
$userInfo = $fbObj->api(array('method' => 'fql.query', 'query' => $fql));

$access_token = $fbObj->getAccessToken();

// 코멘트 목록 가져오기
$fql = 'select post_fbid,fromid,object_id,text,comments,time from comment where object_id in (select comments_fbid from link_stat where url=\'' . $_iwtGlobalVariable['facebook']['commentUrl'] . '\' limit 0,' .  $limitNum . ') order by time limit 0,' .  $limitNum;
$commentList = $fbObj->api(array('method' => 'fql.query', 'query' => $fql));

// 회원명 가져오기
$fql = 'SELECT uid,name FROM user WHERE uid IN (SELECT fromid from comment where object_id IN (SELECT comments_fbid FROM link_stat WHERE url=\'' . $_iwtGlobalVariable['facebook']['commentUrl'] . '\' limit 0,' .  $limitNum . ') limit 0,' .  $limitNum . ') limit 0,' .  $limitNum;
$memberList = $fbObj->api(array('method' => 'fql.query', 'query' => $fql));
$nameMatchData = array();
foreach($memberList as $data) {
    $nameMatchData[$data['uid']] = $data['name'];
}
?>
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="kor" xmlns:fb="http://ogp.me/ns/fb#"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="kor" xmlns:fb="http://ogp.me/ns/fb#"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="kor" xmlns:fb="http://ogp.me/ns/fb#"> <![endif]-->
<html xmlns:fb="http://ogp.me/ns/fb#">
<head>
<meta charset="utf-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0, user-scalable=yes, target-densitydpi=medium-dpi" />   

<link rel="stylesheet" href="css/common.css">
</head>

<body>
<table BORDER=0 cellpadding="5" cellspacing="0">
    <tr>
        <td>
            <table border="0" cellspacing="0" cellpadding="0" background="/admin/images/title_bg02.gif">
                <tr>
                    <td width="30"><img src="/admin/images/title_bg01.gif" width="30" height="21"></td>
                    <td>댓글 목록</td>
                    <td width="25"><img src="/admin/images/title_bg03.gif" width="25" height="21"></td>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td>
            <table cellspacing="1" style="background-color:#333">
                <tr bgcolor="#DD11DD">
                    <td>No.</td>
                    <td>이름</td>
                    <td>내용</td>
                    <td>날짜</td>
                </tr>
<?
    $totalNum = sizeof($commentList);
    $num = $totalNum;
    foreach($commentList as $key => $data) {
?>
                <tr bgcolor="#FFFFFF">
                    <td><?=++$idx ?></td>
                    <td><?=$nameMatchData[$data['fromid']] ?></td>
                    <td><?=str_replace("\n", "<br />", $data['text']) ?>
<?
        if($data['comments']['count']) {
            echo '
                    <table cellspacing="1" style="background-color:#333">   
                        <tr bgcolor="yellow">
                            <td>No.</td>
                            <td>이름</td>
                            <td>내용</td>
                            <td>날짜</td>
                        </tr>
            ';
            $commentIdx = 0;
            foreach($data['comments']['data'] as $commentKey => $commentData) {
                echo '
                        <tr bgcolor="yellow">
                            <td>' . (++$commentIdx) . '</td>
                            <td>' . $commentData['from']['name'] . '</td>
                            <td>' . $commentData['message'] . '</td>
                            <td>' . date('Y-m-d H:i:s', $commentData['created_time']) . '</td>
                        </tr>
                ';
            }
            echo '
                    </table>
            ';
        }
?>
                    </td>
                    <td><?=date('Y-m-d H:i:s', $data['time']) ?></td>
                </tr>
<?
    }
?>
            </table>
        </td>
    </tr>
</table>
</body>
</html>

Posted by incree

2012/06/20 22:42 2012/06/20 22:42
, , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/132

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다


Notices

Archives

Authors

  1. incree

Recent Trackbacks

Calendar

«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Site Stats

Total hits:
435938
Today:
113
Yesterday:
230