Twitter Android-FirebaseUI 身份验证:一旦我在 Android 应用程序上获得访问令牌和访问密码,如何代表用户 post?这些够了吗?
Twitter Android-FirebaseUI auth: How to post on user's behalf once I have the access Token and the access secret on Android App??are those enough?
我成功登录并使用 firebase-ui-auth [https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md][1]:
获得了 Twitter 访问令牌和 Twitter 访问密码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN && resultCode == RESULT_OK) {
IdpResponse response = IdpResponse.fromResultIntent(data);
//twitter access token
response.getIdpToken();
//twitter access token secret
response.getIdpSecret();
}
}
我想 post 代表用户(对他们的帐户,而不是我的帐户)使用我将保存在共享首选项中的这两个令牌。
1) 这两个令牌是否足以 post 到用户帐户?
2) 我如何使用这两个标记对 post 做些什么?。我似乎找不到适合我的特殊情况的文档,推特 api 对 android 的处理真的很差。
我已经通过使用 fabric 及其 TweetComposer 自己解决了这个问题 class.....
首先,您需要在您的应用 bootstrap Class 上初始化 fabric
Fabric.with(this, new Twitter(authConfig));
然后在 class 上你想发推文,你得到 firebase 实例来获得登录用户,然后你设置你登录 firebase 时得到的 Twitter 用户密钥和密码 UI https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md,为了将来获取代表用户发推文所需的两个令牌,您可以像 link 指定的那样进行操作:
要检索 IDP 返回的 ID 令牌,您可以从结果 Intent 中提取 IdpResponse。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
IdpResponse idpResponse = IdpResponse.fromResultIntent(data);
startActivity(new Intent(this, WelcomeBackActivity.class)
.putExtra("my_token", idpResponse.getIdpToken()));
}
}
Twitter also returns an AuthToken Secret which can be accessed with idpResponse.getIdpSecret().
现在您拥有了所需的一切:
mAuth = FirebaseAuth.getInstance();
if (mAuth.getCurrentUser() != null) {
// already signed in
twitter_consumer_key= preferences.getString("TWITTER_CONSUMER_KEY","");
twitter_consumer_secret= preferences.getString("TWITTER_CONSUMER_SECRET","");
TwitterAuthConfig authConfig = new TwitterAuthConfig(twitter_consumer_key, twitter_consumer_secret);
//setting up fabric
Fabric.with(this, new TwitterCore(authConfig), new TweetComposer());
}
and then let's say I want to tweet from a custom button onClick:
ImageButton tweetButton= (ImageButton) findViewById(R.id.tweet_button);
tweetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TweetComposer.Builder builder = new TweetComposer.Builder(mContext)
.text("just setting up my Fabric.");
builder.show();
}
});
该应用程序将使用预设消息 "just setting up my Fabric." 将您重定向到 Twitter 应用程序。您也可以添加图片和视频!
希望这对以后的人有所帮助,因为关于织物的信息很少....
我成功登录并使用 firebase-ui-auth [https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md][1]:
获得了 Twitter 访问令牌和 Twitter 访问密码 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN && resultCode == RESULT_OK) {
IdpResponse response = IdpResponse.fromResultIntent(data);
//twitter access token
response.getIdpToken();
//twitter access token secret
response.getIdpSecret();
}
}
我想 post 代表用户(对他们的帐户,而不是我的帐户)使用我将保存在共享首选项中的这两个令牌。
1) 这两个令牌是否足以 post 到用户帐户? 2) 我如何使用这两个标记对 post 做些什么?。我似乎找不到适合我的特殊情况的文档,推特 api 对 android 的处理真的很差。
我已经通过使用 fabric 及其 TweetComposer 自己解决了这个问题 class.....
首先,您需要在您的应用 bootstrap Class 上初始化 fabric
Fabric.with(this, new Twitter(authConfig));
然后在 class 上你想发推文,你得到 firebase 实例来获得登录用户,然后你设置你登录 firebase 时得到的 Twitter 用户密钥和密码 UI https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md,为了将来获取代表用户发推文所需的两个令牌,您可以像 link 指定的那样进行操作:
要检索 IDP 返回的 ID 令牌,您可以从结果 Intent 中提取 IdpResponse。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
IdpResponse idpResponse = IdpResponse.fromResultIntent(data);
startActivity(new Intent(this, WelcomeBackActivity.class)
.putExtra("my_token", idpResponse.getIdpToken()));
}
}
Twitter also returns an AuthToken Secret which can be accessed with idpResponse.getIdpSecret().
现在您拥有了所需的一切:
mAuth = FirebaseAuth.getInstance();
if (mAuth.getCurrentUser() != null) {
// already signed in
twitter_consumer_key= preferences.getString("TWITTER_CONSUMER_KEY","");
twitter_consumer_secret= preferences.getString("TWITTER_CONSUMER_SECRET","");
TwitterAuthConfig authConfig = new TwitterAuthConfig(twitter_consumer_key, twitter_consumer_secret);
//setting up fabric
Fabric.with(this, new TwitterCore(authConfig), new TweetComposer());
}
and then let's say I want to tweet from a custom button onClick:
ImageButton tweetButton= (ImageButton) findViewById(R.id.tweet_button);
tweetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TweetComposer.Builder builder = new TweetComposer.Builder(mContext)
.text("just setting up my Fabric.");
builder.show();
}
});
该应用程序将使用预设消息 "just setting up my Fabric." 将您重定向到 Twitter 应用程序。您也可以添加图片和视频!
希望这对以后的人有所帮助,因为关于织物的信息很少....