2012-10-31 21 views
0

我試圖創建一個簡單地將用戶集成到Facebook或Twitter的應用程序。Android從文本字段獲取信息並進入登錄網站

下面的代碼的用戶與Facebook連接

import android.net.Uri; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://www.facebook.com")); 
     startActivity(browserIntent); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
} 

現在的問題是,我想表明,他們擺在那裏的用戶名和密碼兩個文本區域,然後將它們發送給Facebook登錄屏幕並登錄該用戶而無需看到登錄屏幕。

如果有人知道如何做到這一點或知道哪裏有一個很好的教程做這個,幫助將不勝感激。

我知道Facebook和Twitter有應用程序,我只用它們作爲學習目的的示例。

此外,如果我要更改鏈接,只是說一個網站,一旦你登錄,你可以查看PDF文件。我如何讓pdf在該屏幕上可見而無需下載?

回答

2

您可以隨時創建一個代理頁面,向Facebook的登錄頁面提交請求。您的網頁看起來是這樣的:

<html> 
<head> 
<script type="text/javascript"> 
    function redirect() { 
     document.forms["frmRedirect"].submit(); 
    } 
</script> 
</head> 
<body onload="redirect();"> 
<form name="frmRedirect" action="https://www.facebook.com/login.php" method="POST"> 
<input type="hidden" name="email" id="email" value="<USERNAME>" /> 
<input type="hidden" type="password" name="pass" id="pass" value="<PASSWORD>" /> 
<input id="btnSubmit" type="submit" /> 
</form> 
</body> 
</html> 

我不相信Facebook擁有你可以通過用戶名和密碼的任何查詢字符串值,我不知道,如果Android SDK有任何Web請求的API。如果他們這樣做,那麼你可能會更好地使用這些。使用您自己的代理頁面就像上面一樣,儘管您可以完全控制請求。如果用戶名和密碼是動態的,就像他們在你的情況下一樣,你可以很容易地修改上面的代碼,所以它還包括對查詢字符串值的支持。然後,您將修改onload函數以讀取這些查詢字符串值並將其值插入電子郵件和傳遞字段中。

一旦你完成了所有這些,你只需從你的android應用程序而不是Facebook直接打開你的代理頁面。

此外,根據您最終的結果,您可能需要閱讀其文檔。 http://developers.facebook.com/