随着Facebook的新Android SDK 3.0(几天前发布),身份验证过程发生了变化.
那么你如何申请阅读权限,例如"friends_hometown"?
以下代码是我试图这样做的 - 但我很确定这不是你应该这样做的方式:
版本1:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Session.openActiveSession(this, true, new Session.StatusCallback() { // start Facebook login
@Override
public void call(Session session, SessionState state, Exception exception) { // callback for session state changes
if (session.isOpened()) {
List<String> permissions = new ArrayList<String>();
permissions.add("friends_hometown");
session.requestNewReadPermissions(new Session.NewPermissionsRequest(FBImport.this, permissions));
Request.executeGraphPathRequestAsync(session, "me/friends/?access_token="+session.getAccessToken()+"&fields=id,name,hometown", new Request.Callback() {
...
});
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
版本2:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Session currentSession = Session.getActiveSession();
if (currentSession == null || currentSession.getState().isClosed()) { …Run Code Online (Sandbox Code Playgroud) android facebook facebook-authentication facebook-android-sdk
在Heroku Cedar上,我想获得客户端的IP.第一次尝试:
ENV['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,因为所有请求都通过代理传递.所以替代方案是使用:
ENV['HTTP_X_FORWARDED_FOR']
Run Code Online (Sandbox Code Playgroud)
但这不太安全,是吗?
如果它只包含一个值,我就拿这个.如果它包含多个值(以逗号分隔),我可以选择第一个值.
但是,如果有人操纵这个价值呢?我不能相信ENV['HTTP_X_FORWARDED_FOR'],我可以用ENV['REMOTE_ADDR'].并且我也没有可以使用的可信代理列表.
但总是必须有一些方法来可靠地获取客户端的IP地址.你知道吗?
在他们的文档中,Heroku描述了X-Forwarded-For"连接到Heroku路由器的客户端的原始IP地址".
听起来好像Heroku可能会X-Forwarded-For用原始的远程IP 覆盖它.这样可以防止欺骗,对吧?有人可以验证吗?
在MYSQL中,您可以为VARCHAR字段类型选择长度.可能的值为1-255.
但是如果你使用最大的VARCHAR(255)而不是VARCHAR(20),它有什么优势?据我所知,条目的大小仅取决于插入字符串的实际长度.
size(字节)=长度+ 1
因此,如果在VARCHAR(255)字段中有"示例"一词,则它将具有8个字节.如果你在VARCHAR(20)字段中有它,它也会有8个字节.有什么不同?
我希望你能帮助我.提前致谢!
在我的Android应用程序中,我想在某个时间点提示用户对Android市场中的应用进行评级.
在搜索了一种方法之后,我在这个网站上找到了一些代码.这段代码似乎运行得很好.
但遗憾的是,当Android市场未安装在用户的手机上时,此代码似乎会引发"强制关闭"错误消息.有没有办法检查Android市场是否已安装,如果没有,请不要尝试执行代码?
引发错误的行可能就是这个,因为它无法解析URI:
mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME)));
Run Code Online (Sandbox Code Playgroud)
顺便说一下,那个代码还有其他可以改进的东西吗?
编辑:
几年后,我将所有代码放入一个小型库项目:GitHub上的AppRater
我最近在属性"Same Site"上阅读了"RFC 6265",我看了一些在2016年4月讨论过的文章,为Chrome 51和Opera 39实现了"同站点"属性...
我想知道当前的PHP是否支持使用此属性创建cookie?
参考:
我想建立一个可以模拟足球(足球联赛)比赛的模拟引擎.如果你可以帮助我,那将是很酷的.对我来说重要的是决定哪些行动发生.每个操作的事件侦听器都可以在以后轻松实现.该功能应该只模拟游戏结果和对正在发生的动作的评论.不需要2D/3D图形.我们谈论像Hattrick这样的游戏.
我建议你先做几分钟的行动.
$ minutes = array(1,3,4,7,11,13,...,90,92);
对于这些分钟中的每一分钟,您都可以模拟攻击.
攻击团队由骰子决定:$ attacking = mt_rand(1,2);
所以对我来说最重要的部分是攻击功能.
请编辑我的方法或将其用作样本.你能帮我改进一下吗?该功能应该是复杂的,以便结果尽可能真实.但是你需要在高可预测性和过于随机的结果之间找到一些东西.我只想改进这个功能.
我的方法:
<?php
function Chance_Percent($chance, $universe = 100) {
$chance = abs(intval($chance));
$universe = abs(intval($universe));
if (mt_rand(1, $universe) <= $chance) {
return true;
}
return false;
}
function simulate_attack($teamname_att, $teamname_def, $strength_att, $strength_def) {
global $minute, $goals, $_POST, $matchReport, $fouls, $yellowCards, $redCards, $offsides, $schuesse, $taktiken;
// input values: attacker's name, defender's name, attacker's strength array, defender's strength array
// players' strength values vary from 0.1 to 9.9 …Run Code Online (Sandbox Code Playgroud) 我有一个IntentService在另一个类中启动异步任务,然后应该等待结果.
问题是方法运行完毕后IntentService会立即onHandleIntent(...)完成,对吧?
这意味着,通常,IntentService在启动异步任务后会立即关闭,并且不再存在以接收结果.
public class MyIntentService extends IntentService implements MyCallback {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected final void onHandleIntent(Intent intent) {
MyOtherClass.runAsynchronousTask(this);
}
}
public interface MyCallback {
public void onReceiveResults(Object object);
}
public class MyOtherClass {
public void runAsynchronousTask(MyCallback callback) {
new Thread() {
public void run() {
// do some long-running work
callback.onReceiveResults(...);
}
}.start();
}
}
Run Code Online (Sandbox Code Playgroud)
如何使上面的代码段工作?我已经尝试在启动任务后放入Thread.sleep(15000)(任意持续时间)onHandleIntent(...).它似乎工作.
但它绝对不是一个干净的解决方案.也许甚至有一些严重的问题.
更好的解决方案?
在我的Android应用程序中,我有一个带适配器的简单列表视图.有一个繁重的查询是用数据填充列表视图.所以我把它放到另一个线程中运行的IntentService.
IntentService通常单独运行,只是为了查询一些数据并将其插入SQLite数据库.
但现在我想有以下可能性:
这可能吗?我在这个主题的Stack Overflow上阅读了很多问题.但在每个问题中,都有另一种解决方案.所以我想问你们所有人:哪种解决方案最符合我的目的?
multithreading android broadcastreceiver android-intent android-activity
在PHP 5中,每当我将数字作为输入时,我都使用intval().这样,我想确保我没有字符串或浮动数字.我的输入数字应该都是整数.但是当我得到数字> = 2147483647时,超过了有符号整数限制.
对于所有大小的数字,我能做些什么的intval()?
这就是我想要的:
<?php
$inputNumber = 3147483647.37;
$intNumber = intvalEquivalent($inputNumber);
echo $intNumber; // output: 3147483647
?>
Run Code Online (Sandbox Code Playgroud)
非常感谢你提前!
编辑:根据一些答案,我试图编写一个等效的函数.但它并不像intval()那样完全正常.我怎样才能改进它?这有什么问题?
function intval2($text) {
$text = trim($text);
$result = ctype_digit($text);
if ($result == TRUE) {
return $text;
}
else {
$newText = sprintf('%.0f', $text);
$result = ctype_digit($newText);
if ($result == TRUE) {
return $newText;
}
else {
return 0;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想编写一个国际象棋引擎,学习如何做出好的动作并赢得其他玩家.我已经编写了国际象棋棋盘的代表和一个输出所有可能动作的函数.所以我只需要一个评估功能,它可以说明董事会的特定情况有多好.因此,我想使用人工神经网络,然后应该评估给定的位置.输出应该是一个数值.值越高,白人玩家的位置越好.
我的方法是建立一个由385个神经元构成的网络:棋盘上有六个独特的棋子和64个场.因此,对于每个场,我们采取6个神经元(每个1个).如果有白色片段,则输入值为1.如果有黑色片段,则值为-1.如果那个场上没有那种,那么值就是0.除此之外,玩家应该有1个神经元移动.如果是白色,则输入值为1,如果是黑色,则值为-1.
我认为神经网络的配置非常好.但缺少主要部分:如何将这种神经网络实现为编码语言(例如Delphi)?我认为每个神经元的权重在开始时应该是相同的.根据匹配的结果,然后应调整权重.但是怎么样?我想我应该让两个电脑玩家(都使用我的引擎)互相对抗.如果White获胜,Black会得到其权重不佳的反馈.
因此,如果您可以帮助我将神经网络实现为编码语言(最好的是Delphi,否则是伪代码)会很棒.提前致谢!