gpt4 book ai didi

android - 使用 Temboo 在 Facebook 和 Twitter 上发帖

转载 作者:行者123 更新时间:2023-11-29 00:24:35 29 4
gpt4 key购买 nike

我需要允许我的应用程序在用户的 Facebook 和 Twitter 墙上发布某些消息。这个想法就像显示一个按钮一样简单,一旦用户点击它,他就被要求登录他的 Facebook 帐户(无论如何)并给我的应用程序编写权限,我的应用程序将能够发布一个某些消息(或者至少我的应用程序应该能够检查用户是否稍后发布了该消息)。 Twitter 也一样,但有另一个按钮。

Android 的 Facebook SDK 和 Twitter SDK 起初看起来太可怕了,我只想在用户点击按钮时登录并发布消息。我一直在研究,Temboo 库真的很有前途。我已经对其进行了测试,并且能够毫无问题地在 Facebook 和 Twitter 上发布,提供我自己帐户的凭据。问题是允许用户在自己的帐户中发布的登录步骤。

按照 Temboo 程序,我尝试使用 Choreos InitializeOAuth 和 FinalizeOAuth。如果我没记错的话,InitializeOAuth 会返回一个回调 URL,必须将其呈现给用户以允许我的应用程序发布或其他任何内容。但是怎么办?我是否需要在 WebView 中加载该 URL,然后检测用户何时在 WebView 中登录?我不知道。 Temboo 的网站和强大的功能看起来很惊人,但是文档中缺少一个像 Android 中的 Facebook 或 Twitter 中的整个身份验证过程一样有用的示例...:'(

最佳答案

简而言之,关于如何在 Android 应用程序中实现 OAuth 流程,您是正确的。在高层次上,您的应用程序将:

  1. 运行 InitializeOAuth Choreo
  2. 打开一个WebView,指向InitializeOAuth返回的授权URL
  3. 用户在 WebView 中点击“允许”后,运行 FinalizeOAuth Choreo 以检索访问 token

上面 #3 的技巧是使用“Intent 过滤器”在 Android 中注册自定义 URL 处理方案的能力。在您的 AndroidManifest.xml 文件中,您需要使用如下代码为您的一个 Activity 分配自定义 Intent 过滤器:

<activity android:name=".MyOAuthActivity">
<intent-filter>
<action android:name = "android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="temboo" android:host="twitter" />
</intent-filter>
</activity>

这段代码的意思是,如果您的应用程序收到对“temboo://twitter”这样的 url 的请求,那么该请求将自动转发到您指定的 Activity ——在本例中为 MyOAuthActivity。

当您运行 InitializeOAuth Choreo 时,您需要将“temboo://twitter”(或您使用的任何自定义 Intent 方案)指定为“转发 URL”输入。这将导致 Temboo 在用户点击 OAuth WebView 中的“允许”后将请求转发回您的 Activity 。

在您的 Activity 中,您可以使用自定义方案拦截 URL,代码如下:

// Find the webview, and make sure Javascript is enabled.
WebView webview = (WebView)findViewById(R.id.oauthWebview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {


// Here we override the onPageStarted method of the webview. If Twitter authorization
// succeeds, we'll be redirected to a URL that looks like temboo://twitter
public void onPageStarted(WebView view, String url, Bitmap favicon) {

if(url.startsWith("temboo://")) {
handled = true;
// We got forwarded here from the 3rd party OAuth approval page; proceed
// to next step
Log.i("Temboo", "Got callback!");
Intent i = new Intent(getBaseContext(), FinalizeOAuthActivity.class);
i.putExtra("callbackID", callbackID);
startActivity(i);
}
}
});

webview.loadUrl(authorizationURL);`

顺便说一句,我在 Temboo 工作,如有任何其他问题,请随时与我们联系。

关于android - 使用 Temboo 在 Facebook 和 Twitter 上发帖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671241/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com