在開始之前...你必須先向facebook註冊你的網站
https://developers.facebook.com/
完成後即可得到你的
應用程式ID/API鑰匙=> 即後面會用到的client_id
網站URL=> 這應該是你自己設定的後面也會用到redirect_uri
應用程式密鑰=> 後面會用到的client_secret
完成註冊後就可以開始以下步驟了
Step1: 做登入的按鍵
這按鍵的只要加上這個超連結就行了
https://www.facebook.com/dialog/oauth?client_id=你的client_id&redirect_uri=http://www.7998.com.tw/
Step2: 在你的登入頁面需要加入一個code的參數 以便facebook將資料帶進來
在使用者按下登入的按鍵後facebook會讓使用者登入後再導回到你的網站並附帶一個code的參數
http://www.7998.com.tw/?code=2345eashdfhasdfjasdkfjasdlfjlasdj......這code是我亂打的 = ="
Step3: 利用facebook 傳來的code參數向facebook取得access_token
https://graph.facebook.com/oauth/access_token?client_id=應用程式ID/API鑰匙&redirect_uri=你的網址&client_secret=應用程式密鑰&code=2345eashdfhasdfjasdkfjasdlfjlasdj
會得到facebook 回傳的資料
access_token=asdfasdbja;ljserowjelrjlwjksejlfjsl....這當然也是我亂打的= ="
Step4: 利用access_token就可以取的使用者的資料了
https://graph.facebook.com/me?access_token=asdfasdbja;ljserowjelrjlwjksejlfjsl
詳細流程可以看facebook的官方說明
https://developers.facebook.com/docs/authentication/
2011年9月27日 星期二
[BCB] 視窗間傳遞物件訊息 SendMessage
在寫程式的時候有時候會需要和其他程式做溝通
這程式很有可能就在本機的電腦上的另一支程式
這時候就可以利用SendMessage這API來達成
首先先宣告結構
在.cpp中加入Send的function 當然最好在.h中先宣告
在接受端的部份
在from.h的private:後面加入宣告
在.cpp中加入
以上資料是從Delphi.Ktop找到的
這程式很有可能就在本機的電腦上的另一支程式
這時候就可以利用SendMessage這API來達成
首先先宣告結構
typedef struce _MYSTRUCT
{
char szChar[255];
int iInt;
}MyStruct;
在傳送端的部份在.cpp中加入Send的function 當然最好在.h中先宣告
void Send()
{
AnsiString app_name = "要收到訊息的視窗";
AnsiString msg = "要傳送的訊息";
int type = 1; //要傳送的數字
HWND hWnd = FindWindow(NULL, app_name.c_str()); //找到視窗
if(hWnd)
{
MyStruct ms;
istrcpy(ms.szChar, msg.c_str());
ms.iInt=type;
COPYDATASTRUCT CopyData;
CopyData.dwData=0;
CopyData.cbData=sizeof(MyStruct);
CopyData.lpData=&ms;
SendMessage( hWnd, WM_COPYDATA, NULL, (LPARM)&CopyData);
}
}
在接受端的部份
在from.h的private:後面加入宣告
void __fastcall WMCopyData( TMessage &Message );
BEGIN_MESSGE_MAP
MESSAGE_HANDLER(WM_COPYDATA, TMessage, WMCopyData)
END_MESSAGE_MAP(TForm)
在.cpp中加入
void __fastcall TMainForm::WMCopyData(TMessage &Message)
{
COPYDATASTRUCT *CopyData = (COPYDATASTRUCT*) (Message.LParam);
if(CopyData->cbData == sizeof(MyStruct) )
{
MyStruct ms;
CopyMemory(&ms, CopyData->lpData, CopyData->cbData);
//ms.Int 即是接收到的數字
//ms.szChar即是要接收到的訊息
}
}
以上資料是從Delphi.Ktop找到的
訂閱:
文章 (Atom)