Aleksandra Świątek

Aleksandra Świątek Student, Uniwersytet
Warszawski

Temat: Integracja z facebookiem

Witam Was i proszę o poradę. Zrobiłam aplikację na facebooku, ankietę. Użytkownik wybiera jedną z kilku możliwych odpowiedzi i klika "zagłosuj" (<input type="image\ ....>). Następnie wyświetlają mu się wyniki ankiety. Aplikacja działa na facebooku.

Chciała bym, aby po kliknięciu w "zagłosuj" na tablicy głosującego wyświetlił się wpis np. "Jan Kowalski: wziął udział w ankiecie bla bla:)" no i nie mam pojęcia jak to zrobić:/ czy wystarczy jakiś fragment kodu i jak ten kod spiąć z buttonem "zagłosuj" tak aby jednocześnie publikował post na tablicy i kontynuował działanie skryptu.

Druga sprawa, czy muszę "żądać" zezwoleń od użytkownika gdy uruchamia on aplikację?i jeżeli tak to jakiego kodu użyć?Wolała bym tego uniknąć gdyż jest to uciążliwe dla użytkowników - tak sądze.

Bardzo Was proszę o pomoc, gdyż walczę z tym już trzeci dzień i nic wymyślić nie mogę.

konto usunięte

Temat: Integracja z facebookiem

Aleksandra Świątek:
Chciała bym, aby po kliknięciu w "zagłosuj" na tablicy głosującego wyświetlił się wpis np. "Jan Kowalski: wziął udział w ankiecie bla bla:)" no i nie mam pojęcia jak to zrobić:/ czy wystarczy jakiś fragment kodu i jak ten kod spiąć z buttonem "zagłosuj" tak aby jednocześnie publikował post na tablicy i kontynuował działanie skryptu.

Można to zrobić przez JS SDK.
Przed tagiem zamykającym body dodajesz:

<script type="text/javascript" src="http://static.ak.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>


Po załadowaniu się strony inicjalizujesz bibliotekę (ja np. używam jQuery jeszcze wszędzie).


<script type="text/javascript">
$(document).ready(function(){

FB_RequireFeatures(["XFBML"], function() {
FB.init('TUTAJ_APPLICATION_ID', '/xd_receiver.htm');
});
});
</script>



Oraz tworzysz plik xd_receiver.htm w głównym katalogu który wygląda tak:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Cross-Domain Receiver Page</title>
</head>
<body>
<script src="http://static.ak.facebook.com/js/api_lib/v0.4/XdCommReceiver.js?2" type="text/javascript"></script>
</body>
</html>


Następnie możesz sobie podpiąc pod jakiś przycisk publikację np. z linkiem do ankiety na wallu.


$('.publish').click(function(){
var message = ' wziął udział w ankiecie blablabla';
var attachment = {
"name": "Ankieta",
"href": " http://link_doaplikacji",
"caption": "Ankieta",
"description": "Ankieta"
};
var action_links = [{"text":"xxxx", "href":"http://link_doaplikacji"}];

FB.ensureInit(function() {
FB.Connect.streamPublish(message, attachment, action_links, null, 'Blabla!');
});
});

Druga sprawa, czy muszę "żądać" zezwoleń od użytkownika gdy uruchamia on aplikację?i jeżeli tak to jakiego kodu użyć?

Aplikacja musi mieć permission - publish_stream.
A żądać pozwoleń możesz zarówno już przy logowaniu na aplikację za pomocą SDK, w php np.
 $fb->getLoginUrl(array('req_perms' => 'publish_stream')); 


jak poprzez oAuth bezpośrednio - http://developers.facebook.com/docs/authentication/Marcin Olichwirowicz edytował(a) ten post dnia 29.10.10 o godzinie 10:17
Aleksandra Świątek

Aleksandra Świątek Student, Uniwersytet
Warszawski

Temat: Integracja z facebookiem

Marcin dzięki za odpowiedź, niestety nie poradziłam sobie:) Znowu dwa głupie pytania:)
Aplikacja musi mieć permission - publish_stream.
A żądać pozwoleń możesz zarówno już przy logowaniu na aplikację za pomocą SDK, w php np.
 $fb->getLoginUrl(array('req_perms' => 'publish_stream')); 


Za cholere mi to nie działa:) nie wiem czy wstawiam to w dobre miejsce?
$session = $facebook->getSession();

$me = null;
// Session based API call.
if ($session) {
try {

$uid = $facebook->getUser();
$fb->getLoginUrl(array('req_perms' => 'publish_stream'));
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}


Następnie możesz sobie podpiąc pod jakiś przycisk publikację np. z linkiem do ankiety na wallu.


$('.publish').click(function(){
var message = ' wziął udział w ankiecie blablabla';
var attachment = {
"name": "Ankieta",
"href": " http://link_doaplikacji",
"caption": "Ankieta",
"description": "Ankieta"
};
var action_links = [{"text":"xxxx", "href":"http://link_doaplikacji"}];

FB.ensureInit(function() {
FB.Connect.streamPublish(message, attachment, action_links, null, 'Blabla!');
});
});


To też nie wiem gdzie wstawić i jak podpiąć to pod jakiś link:/ Bardzo Cie proszę o pomoc:)

konto usunięte

Temat: Integracja z facebookiem

Aleksandra Świątek:
Marcin dzięki za odpowiedź, niestety nie poradziłam sobie:) Znowu dwa głupie pytania:)
Aplikacja musi mieć permission - publish_stream.
A żądać pozwoleń możesz zarówno już przy logowaniu na aplikację za pomocą SDK, w php np.
 $fb->getLoginUrl(array('req_perms' => 'publish_stream')); 


Za cholere mi to nie działa:) nie wiem czy wstawiam to w dobre miejsce?
$session = $facebook->getSession();

$me = null;
// Session based API call.
if ($session) {
try {

$uid = $facebook->getUser();
$fb->getLoginUrl(array('req_perms' => 'publish_stream'));
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}


Jeżeli mówimy o takim kodzie to bardziej coś takiego (zakładając, że masz aplikację typu iframe):

$session = $facebook->getSession();

$me = null;
Session based API call.
if ($session) {
try {

$uid = $facebook->getUser();

$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
} else {
$url = $facebook->getLoginUrl(array('canvas' => 1, 'fbconnect' => 0, 'req_perms' => 'publish_stream'));
echo "<script type='text/javascript'>top.location.href = '$url';</script>";

}



Następnie możesz sobie podpiąc pod jakiś przycisk publikację np. z linkiem do ankiety na wallu.


$('.publish').click(function(){
var message = ' wziął udział w ankiecie blablabla';
var attachment = {
"name": "Ankieta",
"href": " http://link_doaplikacji",
"caption": "Ankieta",
"description": "Ankieta"
};
var action_links = [{"text":"xxxx", "href":"http://link_doaplikacji"}];

FB.ensureInit(function() {
FB.Connect.streamPublish(message, attachment, action_links, null, 'Blabla!');
});
});


To też nie wiem gdzie wstawić i jak podpiąć to pod jakiś link:/ Bardzo Cie proszę o pomoc:)

Poczytaj o jQuery albo wez samą funkcję przekazywaną do click() i zarzuć ją do zdarzenia on click na elemencie html.

Podsumowując: widzę, że nie bardzo wiesz co robisz dlatego może Ci być trudno z osiągnięciem satysfakcjonującego efektu, zwłaszcza, że moim zdaniem pisanie aplikacji na FB i korzystanie z tego api (oraz dokumentacji) jest naprawde uciążliwe nawet dla kogoś kto się orientuje w tym i owym.Marcin Olichwirowicz edytował(a) ten post dnia 29.10.10 o godzinie 14:27
Aleksandra Świątek

Aleksandra Świątek Student, Uniwersytet
Warszawski

Temat: Integracja z facebookiem

Dziękuje;) Z uzyskiwaniem zezwolenia się udało, z publikowaniem będe jeszcze walczyć:)

Następna dyskusja:

[SAP & PHP] Integracja i mi...




Wyślij zaproszenie do