vinayaka
16th September 2011, 09:04
hai,
This is the code for gui application to connect FB.Using this ap we can retrieve the names of our friends.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGlobal>
#include <QDebug>
#include <QMessageBox>
#include "fbrequest.h"
#include "fberror.h"
static QString UserId;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
iLoginDialog ( NULL )
{
ui->setupUi(this);
iFBSession = FBSession::sessionForApplication("xxxxxxxxxxx","xxxxxxxxxxx", QString());
connect (iFBSession,SIGNAL(sessionDidLogin(FBUID)), this, SLOT(sessionDidLogin(FBUID)));
connect (iFBSession, SIGNAL(sessionDidLogout()), this, SLOT(sessionDidLogout()));
}
MainWindow::~MainWindow()
{
delete iFBSession;
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::on_pushButton_clicked()
{
if (iFBSession->resume() == false)
{
iLoginDialog = new FBLoginDialog();
iLoginDialog->show();
}
}
void MainWindow::sessionDidLogin(FBUID aUid)
{
QMessageBox msgbox;
UserId = QString::number(aUid,10);
QString msg ("Logged in sucessfully, your FBUID is " + UserId);
msgbox.setText(msg);
msgbox.exec();
if (iLoginDialog)
{
iLoginDialog->deleteLater();;
iLoginDialog = NULL;
}
}
void MainWindow::sessionDidLogout()
{
QMessageBox msgbox;
msgbox.setText("logged out");
msgbox.exec();
}
void MainWindow::on_pushButton_2_clicked()
{
FBRequest* request = FBRequest::request();
Dictionary params;
QString query = "select name,pic_big, status,birthday_date, timezone from user where uid in (select uid2 from friend where uid1==" +UserId+ ")";
params["query"] = query;
connect (request, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
connect (request, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
request->call("facebook.fql.query",params);
}
void MainWindow::requestFailedWithFacebookError ( const FBError& aError )
{
qDebug() << "facebook error is " << aError.code() << " - " << aError.description();
}
void MainWindow::requestDidLoad(const QVariant& aContainer)
{
if (aContainer.type() == QVariant::List)
{
QVariantList list = aContainer.toList();
for (int i = 0 ; i < list.count(); i ++)
{
QVariantHash dictionary = list.at(i).toHash();
QHashIterator<QString, QVariant> iterator(dictionary);
QString name = dictionary.value("name").toString();
ui->listWidget->addItem(name);
}
sender()->deleteLater();
}
}
void MainWindow::on_buttonForget_clicked()
{
iFBSession->logout();
}
After login the FB Errors show like this:
Starting D:\WS\qfacebookconnect-qfacebookconnect\debug\sample.exe...
Load started: QUrl( "" )
Loading url: "http://www.facebook.com/login.php?api_key=xxxxxxxxxx&next=fbconnect://success&connect_display=touch&fbconnect=1"
Load successfull for: QUrl( "http://m.facebook.com/login.php?api_key=xxxxxxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
Load started: QUrl( "http://m.facebook.com/login.php?api_key=xxxxxxxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
Load un successfull for: QUrl( "http://m.facebook.com/login.php?api_key=xxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
1
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
This is the .pro file
#-------------------------------------------------
#
# Project created by QtCreator 2009-11-20T00:54:21
#
#-------------------------------------------------
QT += network webkit xml
TARGET = sample
TEMPLATE = app
DESTDIR = ../debug
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
INCLUDEPATH = ../inc/
win32:LIBS += ../debug/qfacebookconnect.lib
unix:LIBS += ../debug/libqfacebookconnect.so
symbian: {
TARGET.CAPABILITY = NetworkServices # Symbian specific, we just need network access
TARGET.UID3 = 0xA89FA522 # Symbian specific, unprotected uid3 from symbiansigned.com
INCLUDEPATH += /epoc32/include/stdapis # this seems to be a bug.
LIBS += -lqfacebookconnect
libqfacebookconnect.sources = qfacebookconnect.dll
libqfacebookconnect.path = \sys\bin
DEPLOYMENT += libqfacebookconnect
}
ICON = gfx/fb.svg
qfacebookconnect.lib is pasted in the Debug folder
Can you help me to run this project successfully
This is the code for gui application to connect FB.Using this ap we can retrieve the names of our friends.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGlobal>
#include <QDebug>
#include <QMessageBox>
#include "fbrequest.h"
#include "fberror.h"
static QString UserId;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
iLoginDialog ( NULL )
{
ui->setupUi(this);
iFBSession = FBSession::sessionForApplication("xxxxxxxxxxx","xxxxxxxxxxx", QString());
connect (iFBSession,SIGNAL(sessionDidLogin(FBUID)), this, SLOT(sessionDidLogin(FBUID)));
connect (iFBSession, SIGNAL(sessionDidLogout()), this, SLOT(sessionDidLogout()));
}
MainWindow::~MainWindow()
{
delete iFBSession;
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::on_pushButton_clicked()
{
if (iFBSession->resume() == false)
{
iLoginDialog = new FBLoginDialog();
iLoginDialog->show();
}
}
void MainWindow::sessionDidLogin(FBUID aUid)
{
QMessageBox msgbox;
UserId = QString::number(aUid,10);
QString msg ("Logged in sucessfully, your FBUID is " + UserId);
msgbox.setText(msg);
msgbox.exec();
if (iLoginDialog)
{
iLoginDialog->deleteLater();;
iLoginDialog = NULL;
}
}
void MainWindow::sessionDidLogout()
{
QMessageBox msgbox;
msgbox.setText("logged out");
msgbox.exec();
}
void MainWindow::on_pushButton_2_clicked()
{
FBRequest* request = FBRequest::request();
Dictionary params;
QString query = "select name,pic_big, status,birthday_date, timezone from user where uid in (select uid2 from friend where uid1==" +UserId+ ")";
params["query"] = query;
connect (request, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
connect (request, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
request->call("facebook.fql.query",params);
}
void MainWindow::requestFailedWithFacebookError ( const FBError& aError )
{
qDebug() << "facebook error is " << aError.code() << " - " << aError.description();
}
void MainWindow::requestDidLoad(const QVariant& aContainer)
{
if (aContainer.type() == QVariant::List)
{
QVariantList list = aContainer.toList();
for (int i = 0 ; i < list.count(); i ++)
{
QVariantHash dictionary = list.at(i).toHash();
QHashIterator<QString, QVariant> iterator(dictionary);
QString name = dictionary.value("name").toString();
ui->listWidget->addItem(name);
}
sender()->deleteLater();
}
}
void MainWindow::on_buttonForget_clicked()
{
iFBSession->logout();
}
After login the FB Errors show like this:
Starting D:\WS\qfacebookconnect-qfacebookconnect\debug\sample.exe...
Load started: QUrl( "" )
Loading url: "http://www.facebook.com/login.php?api_key=xxxxxxxxxx&next=fbconnect://success&connect_display=touch&fbconnect=1"
Load successfull for: QUrl( "http://m.facebook.com/login.php?api_key=xxxxxxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
Load started: QUrl( "http://m.facebook.com/login.php?api_key=xxxxxxxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
Load un successfull for: QUrl( "http://m.facebook.com/login.php?api_key=xxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
1
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
This is the .pro file
#-------------------------------------------------
#
# Project created by QtCreator 2009-11-20T00:54:21
#
#-------------------------------------------------
QT += network webkit xml
TARGET = sample
TEMPLATE = app
DESTDIR = ../debug
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
INCLUDEPATH = ../inc/
win32:LIBS += ../debug/qfacebookconnect.lib
unix:LIBS += ../debug/libqfacebookconnect.so
symbian: {
TARGET.CAPABILITY = NetworkServices # Symbian specific, we just need network access
TARGET.UID3 = 0xA89FA522 # Symbian specific, unprotected uid3 from symbiansigned.com
INCLUDEPATH += /epoc32/include/stdapis # this seems to be a bug.
LIBS += -lqfacebookconnect
libqfacebookconnect.sources = qfacebookconnect.dll
libqfacebookconnect.path = \sys\bin
DEPLOYMENT += libqfacebookconnect
}
ICON = gfx/fb.svg
qfacebookconnect.lib is pasted in the Debug folder
Can you help me to run this project successfully