тео
Well-Known Member
Една седмица се главоблъскам да свържа Wordpress + php скрипт + Facebook. Справих се и ето накратко как става:
Какъв е сайтът. Сайтът е за онлайн тестове.
Тестовете се правят с помощта на php, БД, има отделна администрация, в която се попълват самите тестове, техните отговори и точкуването. Работи напълно самостоятелно. Недостатъците - никаква възможност за нормално СЕО, външния вид е ужасен.
УП за основа на сайта. Включени разширения - Exec-PHP и WP-FB-AutoConnect.
Какво трябва да се направи за да се свържат Wordpress-а, php скрипта и Facebook, така че ако посетителя влезе със своя ФБ профил, резултата от теста да се публикува на стената му.
1. УП+php
УП е инсталиран в главната директория, тестовете - в ../test/
Php скриптът генерира адрес на теста и резултати от него във вида:
За да се показват тестовете като публикации е необходимо разширението Exec-PHP. Предимството му пред другите подобни е, че може да изпълнява php с параметри (в случая ?id=1). Трябва да се забрани визуалния редактор на УП, защото разбърква въведения код (става от настройките на разширението).
Когато публикувате нов пост, въвеждате следния код:
Това ще вмъкне цялата страница във вашия пост. Необходимо е да зачистите всякакъв html код от test.html, за да се форматира теста, както е темата на шаблона ви.
2. УП + Facebook
За да го направите
Външен вид > Джаджи > поставяте WP-FB-AutoConnect.
3. php + Facebook
Първо е необходимо да си свалите този ФБ клас от Glithub. Разархивирайте и качете на сайта си файла facebook.php. Ако искате, направете си директория и го сложете там.
Втора стъпка е да създадем файл, който ще прави връзката между сайта и профила на посетителя:
Кръщаваме файла например fbaccess.php и го запазваме при facebook.php.
Трета стъпка - добавяме в началото на кода на
(упоменете пътя, ако е необходимо)
Това е необходимо за това, всеки път когато се обработи теста, да се извиква fbaccess.php.
Четвърто (и последно) - необходимо е да се добави код най- накрая на
Този код реално изпраща текст към ФБ стената на посетителя:
Този скрипт трябва да се сложи най-отдолу, защото ако посетителят не е влязъл с ФБ профила си, изпълнението на страницата спира до тук.
Това е!
Какво се случва на практика.
а)Влиза посетител. Не се логва. Прави тест - показва му се резултат.
б)Влиза посетител. Логва се. Ако се логва за първи път му се иска да даде разрешение, сайтът да има право да поства на стената му. Прави тест. Показва му се резултат и едновременно с това, резултатът се поства на стената му във ФБ
Ако искате да видите на живо - тест
NB. Ще съм много благодарен на всякакви забележки, съвети и коментари към кода, като имате предвид, че не съм програмист - рових, четох, това открих.
NB2. Също и за сайта
Какъв е сайтът. Сайтът е за онлайн тестове.
Тестовете се правят с помощта на php, БД, има отделна администрация, в която се попълват самите тестове, техните отговори и точкуването. Работи напълно самостоятелно. Недостатъците - никаква възможност за нормално СЕО, външния вид е ужасен.
УП за основа на сайта. Включени разширения - Exec-PHP и WP-FB-AutoConnect.
Какво трябва да се направи за да се свържат Wordpress-а, php скрипта и Facebook, така че ако посетителя влезе със своя ФБ профил, резултата от теста да се публикува на стената му.
1. УП+php
УП е инсталиран в главната директория, тестовете - в ../test/
Php скриптът генерира адрес на теста и резултати от него във вида:
Код:
[URL]http://example.com/test/test.php?id=1[/URL]
[URL]http://example.com/test/result.php[/URL]
за външния вид на тестовете и резултатите се използват 2 html файла
[URL]http://example.com/test/test.html[/URL]
[URL]http://example.com/test/result.html[/URL]
Когато публикувате нов пост, въвеждате следния код:
PHP:
<?php include "http://example.com/test/test.php?id=1"; ?>
2. УП + Facebook
За да го направите
- Посещавате www.facebook.com/developers/createapp.php
- Пишете името на страницата ви (не адреса).
- Във "Web Site" попълвате "Site URL" (http://example.com/ - накрая с /). В Site Domain попълвате само домейна: example.com.
- "Save Changes."
- Записвате си Application ID и Application Secret.
- "Save"
Външен вид > Джаджи > поставяте WP-FB-AutoConnect.
3. php + Facebook
Първо е необходимо да си свалите този ФБ клас от Glithub. Разархивирайте и качете на сайта си файла facebook.php. Ако искате, направете си директория и го сложете там.
Втора стъпка е да създадем файл, който ще прави връзката между сайта и профила на посетителя:
PHP:
<?php
require 'facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'хххххххххх',
'secret' => 'хххххххххх',
'cookie' => true,
));
$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);
}
}
?>
Трета стъпка - добавяме в началото на кода на
Код:
[URL="http://example.com/test/test.php?id=1"]http://example.com/test/test.php[/URL]
PHP:
require_once('fbaccess.php');
Това е необходимо за това, всеки път когато се обработи теста, да се извиква fbaccess.php.
Четвърто (и последно) - необходимо е да се добави код най- накрая на
Код:
[URL]http://example.com/test/result.html[/URL]
PHP:
<?php
$messageto = ("Какъвто текст искате. Може да слагате най-различни променливи от
вашия скрипт. $promenliva1, $promenliva2. Още текст $promenliva3... ");
$status = $facebook->api('/'.$user.'/feed/', 'POST', array('message' => $messageto, 'link' => 'example.com'));
?>
Това е!
Какво се случва на практика.
а)Влиза посетител. Не се логва. Прави тест - показва му се резултат.
б)Влиза посетител. Логва се. Ако се логва за първи път му се иска да даде разрешение, сайтът да има право да поства на стената му. Прави тест. Показва му се резултат и едновременно с това, резултатът се поства на стената му във ФБ
Ако искате да видите на живо - тест
NB. Ще съм много благодарен на всякакви забележки, съвети и коментари към кода, като имате предвид, че не съм програмист - рових, четох, това открих.
NB2. Също и за сайта